| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- using Comal.Classes;
 
- using InABox.Clients;
 
- using InABox.Core;
 
- using InABox.DynamicGrid;
 
- using InABox.WPF;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Windows.Media.Imaging;
 
- namespace PRSDesktop
 
- {
 
-     public interface IEntitySelectionGrid
 
-     {
 
-         HashSet<Guid> Entities { get; set; }
 
-     }
 
-     public class EntitySelectionGrid<T> : DynamicGrid<T>, IEntitySelectionGrid where T : Entity, IRemotable, IPersistent, new()
 
-     {
 
-         private readonly BitmapImage unticked = PRSDesktop.Resources.disabled.AsBitmapImage();
 
-         private readonly BitmapImage ticked = PRSDesktop.Resources.tick.AsBitmapImage();
 
-         private HashSet<Guid> _entities;
 
-         public HashSet<Guid> Entities
 
-         {
 
-             get => _entities;
 
-             set
 
-             {
 
-                 _entities = value;
 
-             }
 
-         }
 
-         public EntitySelectionGrid()
 
-         {
 
-             Options.BeginUpdate().Clear().AddRange(DynamicGridOption.FilterRows).EndUpdate();
 
-             HiddenColumns.Add(x => x.ID);
 
-             ActionColumns.Add(new DynamicImageColumn(TickImage, TickAction));
 
-         }
 
-         private BitmapImage TickImage(CoreRow? row)
 
-         {
 
-             if (row == null)
 
-             {
 
-                 return ticked;
 
-             }
 
-             return _entities.Contains((Guid)row["ID"]) ? ticked : unticked;
 
-         }
 
-         private bool TickAction(CoreRow? row)
 
-         {
 
-             if (row == null)
 
-             {
 
-                 if (_entities.Count < Data.Rows.Count)
 
-                 {
 
-                     _entities = Data.Rows.Select(x => (Guid)x["ID"]).ToHashSet();
 
-                 }
 
-                 else
 
-                 {
 
-                     _entities.Clear();
 
-                 }
 
-                 return true;
 
-             }
 
-             var employeeID = (Guid)row["ID"];
 
-             if (_entities.Contains(employeeID))
 
-             {
 
-                 _entities.Remove(employeeID);
 
-             }
 
-             else
 
-             {
 
-                 _entities.Add(employeeID);
 
-             }
 
-             return true;
 
-         }
 
-         protected override void DeleteItems(params CoreRow[] rows)
 
-         {
 
-         }
 
-         protected override T LoadItem(CoreRow row)
 
-         {
 
-             var id = row.Get<Employee, Guid>(x => x.ID);
 
-             var filter = new Filter<T>(x => x.ID).IsEqualTo(id);
 
-             return new Client<T>().Load(filter).FirstOrDefault();
 
-         }
 
-         protected override void Reload(Filters<T> criteria, Columns<T> columns, ref SortOrder<T> sort, Action<CoreTable, Exception> action)
 
-         {
 
-             new Client<T>().Query(criteria.Combine(), columns, sort, action);
 
-         }
 
-         protected override void SaveItem(T item)
 
-         {
 
-         }
 
-     }
 
- }
 
 
  |