| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | 
							- using InABox.Core;
 
- using InABox.Database;
 
- using InABox.DynamicGrid;
 
- using InABox.Wpf;
 
- using InABox.WPF;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- namespace PRSServer.Forms
 
- {
 
-     public class DeletionsGrid : DynamicGrid<Deletion>
 
-     {
 
-         private Button Refresh;
 
-         private Button Recover;
 
-         private Button View;
 
-         public DeletionsGrid()
 
-         {
 
-             HiddenColumns.Add(x => x.ID);
 
-             HiddenColumns.Add(x => x.Data);
 
-             Refresh = AddButton("", Properties.Resources.refresh.AsBitmapImage(), RefreshItems);
 
-             Recover = AddButton("Recover", null, RecoverItems);
 
-             View = AddButton("", Properties.Resources.view.AsBitmapImage(), ViewItems);
 
-             OnDoubleClick += DeletionsGrid_OnDoubleClick;
 
-         }
 
-         protected override void Init()
 
-         {
 
-         }
 
-         protected override void DoReconfigure(DynamicGridOptions options)
 
-         {
 
-             options.Clear();
 
-             options.DeleteRows = true;
 
-             options.FilterRows = true;
 
-             options.MultiSelect = true;
 
-         }
 
-         private void DeletionsGrid_OnDoubleClick(object sender, System.ComponentModel.HandledEventArgs args)
 
-         {
 
-             DoViewItems(SelectedRows);
 
-         }
 
-         private bool RefreshItems(Button button, CoreRow[] selectedRows)
 
-         {
 
-             return true;
 
-         }
 
-         private bool RecoverItems(Button button, CoreRow[] selectedRows)
 
-         {
 
-             var rows = SelectedRows.ToList();
 
-             if (!rows.Any())
 
-                 return false;
 
-             var recover = MessageWindow.ShowYesNo(
 
-                 "Are you sure you wish to recover these records?",
 
-                 "Confirm Recover");
 
-             if(recover)
 
-             {
 
-                 foreach(var row in rows)
 
-                 {
 
-                     DbFactory.NewProvider(Logger.Main).Recover(row.ToObject<Deletion>());
 
-                 }
 
-                 MessageWindow.ShowMessage("Records recovered", "Records recovered");
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         private void DoViewItems(CoreRow[] selectedRows)
 
-         {
 
-             var rows = SelectedRows.ToList();
 
-             if (!rows.Any())
 
-                 return;
 
-             else if (rows.Count > 1)
 
-             {
 
-                 MessageWindow.ShowMessage("Please select only one row", "Error");
 
-                 return; ;
 
-             }
 
-             var deletion = rows[0].ToObject<Deletion>();
 
-             var window = new ViewDeletionWindow(deletion);
 
-             window.ShowDialog();
 
-         }
 
-         private bool ViewItems(Button button, CoreRow[] selectedRows)
 
-         {
 
-             DoViewItems(selectedRows);
 
-             return false;
 
-         }
 
-         public override void DeleteItems(params CoreRow[] rows)
 
-         {
 
-             foreach(var row in rows)
 
-             {
 
-                 DbFactory.NewProvider(Logger.Main).Purge(row.ToObject<Deletion>());
 
-             }
 
-         }
 
-         protected override void DoDelete()
 
-         {
 
-             var rows = SelectedRows.ToArray();
 
-             if (!rows.Any())
 
-                 return;
 
-             var delete = MessageWindow.ShowYesNo(
 
-                 "Are you sure you wish to permanently delete these records?\n(This cannot be undone.)", 
 
-                 "Confirm Permanent Delete");
 
-             if(delete)
 
-             {
 
-                 DeleteItems(rows);
 
-                 SelectedRows = Array.Empty<CoreRow>();
 
-                 DoChanged();
 
-                 Refresh(false, true);
 
-                 SelectItems(null);
 
-             }
 
-         }
 
-         public override Deletion LoadItem(CoreRow row)
 
-         {
 
-             var id = row.Get<Deletion, Guid>(x => x.ID);
 
-             return DbFactory.NewProvider(Logger.Main).Query(new Filter<Deletion>(x => x.ID).IsEqualTo(id))
 
-                 .Rows.FirstOrDefault()?.ToObject<Deletion>()!;
 
-         }
 
-         protected override void Reload(
 
-         	Filters<Deletion> criteria, Columns<Deletion> columns, ref SortOrder<Deletion>? sort,
 
-         	CancellationToken token, Action<CoreTable?, Exception?> action)
 
-         {
 
-             if(sort == null)
 
-             {
 
-                 sort = new SortOrder<Deletion>(x => x.DeletionDate, SortDirection.Descending);
 
-             }
 
-             var table = DbFactory.NewProvider(Logger.Main).Query(criteria.Combine(), columns, sort);
 
-             action(table, null);
 
-         }
 
-         public override void SaveItem(Deletion item)
 
-         {
 
-             // Cannot save deletions
 
-         }
 
-     }
 
- }
 
 
  |