ICoreRepository.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.Collections;
  2. using System.Collections.ObjectModel;
  3. using System.ComponentModel;
  4. using InABox.Core;
  5. namespace InABox.Avalonia
  6. {
  7. public class CoreRepositoryChangedEventArgs : EventArgs
  8. {
  9. }
  10. public delegate void CoreRepositoryChangedEvent(object sender, CoreRepositoryChangedEventArgs args);
  11. public interface ICoreRepository : INotifyPropertyChanged, IEnumerable
  12. {
  13. //IColumns GetColumns();
  14. IEnumerable AvailableFilters { get; }
  15. void SelectFilter(string? name);
  16. bool FiltersVisible { get; }
  17. byte[]? GetImageSource(Guid id);
  18. bool HasImages();
  19. bool Loaded { get; }
  20. ICoreRepository Refresh(bool force);
  21. Task<ICoreRepository> RefreshAsync(bool force);
  22. void Refresh(bool force, Action loaded);
  23. void Save(string auditMessage);
  24. Task SaveAsync(string auditMessage);
  25. DateTime LastUpdated { get; }
  26. event CoreRepositoryChangedEvent Changed;
  27. IModelHost Host { get; }
  28. object CreateItem();
  29. void CommitItem(object item);
  30. object AddItem();
  31. void DeleteItem(object item);
  32. IEnumerable Items { get; }
  33. int ItemCount { get; }
  34. ICoreRepository Search();
  35. ICoreRepository Search(Func<object,bool> predicate);
  36. void ToggleSelection(object item);
  37. void SelectItem(object item);
  38. void UnselectItem(object item);
  39. void SelectAll();
  40. void SelectNone();
  41. bool IsSelected(object item);
  42. void SetSelectedItems(IEnumerable<object> items);
  43. IEnumerable SelectedItems { get; }
  44. }
  45. }