StockHoldingLookups.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Text;
  4. using InABox.Core;
  5. namespace Comal.Classes
  6. {
  7. public class StockHoldingLookups : EntityLookup<StockHolding>
  8. {
  9. public override Columns<StockHolding> DefineColumns()
  10. {
  11. return base.DefineColumns()
  12. .Add(x => x.Location.Code)
  13. .Add(x => x.Location.Description)
  14. .Add(x => x.Style.Description)
  15. .Add(x => x.Job.JobNumber)
  16. .Add(x => x.Units)
  17. .Add(x => x.Dimensions.UnitSize);
  18. }
  19. private bool HasValue(Dictionary<string, object?> values, string key)
  20. {
  21. return values.ContainsKey(key) && values[key] != null && !string.IsNullOrWhiteSpace(values[key] as string);
  22. }
  23. public override string FormatLookup(Dictionary<string, object?> values, IEnumerable<string> exclude)
  24. {
  25. var result = new StringBuilder();
  26. result.AppendFormat("{0}: {1} @ {2} {3}", values["Location.Description"], values["Units"], values["UnitSize"],
  27. values["Product.Units.Description"]);
  28. if (HasValue(values, "Style.Description"))
  29. result.AppendFormat(" ({0})", values["Style.Description"]);
  30. if (HasValue(values, "Job.JobNumber"))
  31. result.AppendFormat(" - Job {0}", values["Job.JobNumber"]);
  32. return result.ToString();
  33. }
  34. public override Filter<StockHolding> DefineFilter()
  35. {
  36. return new Filter<StockHolding>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  37. }
  38. public override SortOrder<StockHolding> DefineSortOrder()
  39. {
  40. return new SortOrder<StockHolding>(x => x.Location.Code).ThenBy(x => x.Job.JobNumber);
  41. }
  42. }
  43. }