123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.Linq;
- using System.Windows.Media.Imaging;
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- using PRS.Shared;
- namespace PRSDesktop
- {
- internal class DynamicScheduleEditorColumn<T> : DynamicImageColumn where T : Entity, IPersistent, IRemotable, ISchedulable, new()
- {
- private readonly BitmapImage bitmap_disabled = Resources.clock.AsGrayScale().AsBitmapImage();
- private readonly BitmapImage bitmap_enabled = Resources.clock.AsBitmapImage();
- private readonly BitmapImage bitmap_header = Resources.clock.AsBitmapImage();
- public DynamicScheduleEditorColumn() : base(r => null)
- {
- Image = ScheduleImage;
- Action = EditSchedule;
- Filters = new[] { "Active Schedules", "No/Inactive Schedules" };
- FilterRecord = ScheduleFilter;
- }
- private bool ScheduleFilter(CoreRow row, string[] filter)
- {
- int schedules = row.Get<T, int>(x => x.ActiveSchedules);
- if (filter.Contains("Active Schedules") && (schedules > 0))
- return true;
- if (filter.Contains("No/Inactive Schedules") && (schedules == 0))
- return true;
- return false;
- }
- private BitmapImage ScheduleImage(CoreRow row)
- {
- if (row == null)
- return bitmap_header;
- var isenabled = row.Get<T, int>(x => x.ActiveSchedules) > 0;
- return isenabled ? bitmap_enabled : bitmap_disabled;
- }
- private bool EditSchedule(CoreRow row)
- {
- var id = row.Get<T, Guid>(x => x.ID);
- var item = new Client<T>().Load(new Filter<T>(x => x.ID).IsEqualTo(id)).FirstOrDefault();
- var form = new ScheduleForm(item);
- form.ShowDialog();
- return true;
- }
- }
- }
|