| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using System;
- using System.Linq;
- using System.Windows.Controls;
- using System.Windows.Media.Imaging;
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- namespace PRSDesktop;
- public class DataEntryHistorySettings : IUserConfigurationSettings
- {
- public CoreFilterDefinition CurrentFilter { get; set; }
- }
- public class DataEntryHistory : DynamicDataGrid<DataEntryDocument>
- {
- private DataEntryHistorySettings _settings;
- public DataEntryHistory()
- {
- _settings = new UserConfiguration<DataEntryHistorySettings>().Load();
- SelectFilter(_settings.CurrentFilter, false);
-
- HiddenColumns.Add(x => x.Tag.ID);
- HiddenColumns.Add(x => x.Tag.AppliesTo);
- HiddenColumns.Add(x => x.Document.ID);
- HiddenColumns.Add(x=>x.EntityID);
- HiddenColumns.Add(x=>x.Archived);
- ActionColumns.Add(new DynamicImageColumn(LinkedImage) { Position = DynamicActionColumnPosition.Start });
-
- AddButton("Re-Open", PRSDesktop.Resources.refresh.AsBitmapImage(), ReopenClick);
-
- }
-
- private static readonly BitmapImage link = PRSDesktop.Resources.link.AsBitmapImage();
-
- private BitmapImage? LinkedImage(CoreRow? arg)
- {
- return arg == null
- ? link
- : arg.Get<DataEntryDocument, Guid>(x => x.EntityID) != Guid.Empty
- ? link
- : null;
- }
- protected override void FilterSelected(CoreFilterDefinition filter)
- {
- base.FilterSelected(filter);
- _settings.CurrentFilter = filter;
- new UserConfiguration<DataEntryHistorySettings>().Save(_settings);
- }
- private bool ReopenClick(Button sender, CoreRow[] rows)
- {
- DoReopen();
- return false;
- }
- public void DoReopen()
- {
- if (SelectedRows?.Any() != true)
- return;
-
- var updates = SelectedRows.Select(x => x.ToObject<DataEntryDocument>()).ToArray();
- foreach (var update in updates)
- update.Archived = DateTime.MinValue;
- new Client<DataEntryDocument>().Save(updates, "Re-opened from Data Entry Screen");
- Refresh(false,true);
- }
-
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
- base.DoReconfigure(options);
- options
- .BeginUpdate()
- .Clear()
- .Add(DynamicGridOption.ShowHelp)
- .Add(DynamicGridOption.Print)
- .Add(DynamicGridOption.MultiSelect)
- .Add(DynamicGridOption.RecordCount)
- .Add(DynamicGridOption.SelectColumns)
- .Add(DynamicGridOption.FilterRows)
- .EndUpdate();
-
- }
- protected override void Reload(Filters<DataEntryDocument> criteria, Columns<DataEntryDocument> columns, ref SortOrder<DataEntryDocument>? sort, Action<CoreTable?, Exception?> action)
- {
- criteria.Add(new Filter<DataEntryDocument>(x => x.Archived).IsNotEqualTo(DateTime.MinValue));
- base.Reload(criteria, columns, ref sort, action);
- }
- }
|