ICoreRepository.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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
  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. DateTime LastUpdated { get; }
  24. event CoreRepositoryChangedEvent Changed;
  25. IModelHost Host { get; }
  26. object CreateItem();
  27. void CommitItem(object item);
  28. object AddItem();
  29. void DeleteItem(object item);
  30. IEnumerable Items { get; }
  31. int ItemCount { get; }
  32. ICoreRepository Search();
  33. ICoreRepository Search(Func<object,bool> predicate);
  34. void ToggleSelection(object item);
  35. void SelectItem(object item);
  36. void UnselectItem(object item);
  37. void SelectAll();
  38. void SelectNone();
  39. bool IsSelected(object item);
  40. void SetSelectedItems(IEnumerable<object> items);
  41. IEnumerable SelectedItems { get; }
  42. }
  43. }