StockMovementModel.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using InABox.Core;
  6. using System.Diagnostics.CodeAnalysis;
  7. using System.Linq;
  8. using Comal.Classes;
  9. using InABox.Mobile;
  10. using Xamarin.CommunityToolkit.ObjectModel;
  11. using Xamarin.Forms.Xaml;
  12. namespace PRS.Mobile
  13. {
  14. public class StockMovementModel : CoreRepository<StockMovementModel, StockMovementShell, StockMovement>
  15. {
  16. public StockMovementModel(IModelHost host, Func<Filter<StockMovement>> filter): base(host, filter)
  17. {
  18. }
  19. protected override void Initialize()
  20. {
  21. base.Initialize();
  22. Groups = new StockMovementGroup[] { };
  23. }
  24. public StockMovementGroup[] Groups { get; private set; }
  25. protected override void AfterLoad(MultiQuery query)
  26. {
  27. base.AfterLoad(query);
  28. Groups = this
  29. .Select(x => new StockMovementGroup(x.DimensionsUnitSize, x.StyleID, $"{x.DimensionsUnitSize} ({x.StyleDescription})"))
  30. .OrderBy(x=>x.UnitSize)
  31. .ThenBy(x=>x.Description)
  32. .Distinct(new StockMovementGroupEqualityComparer())
  33. .ToArray();
  34. }
  35. }
  36. }