using System.Collections.Generic; using System.Linq; using System.Text; using InABox.Core; namespace Comal.Classes { public class StockHoldingLookups : EntityLookup { public override Columns DefineColumns() { return base.DefineColumns() .Add(x => x.Location.Code) .Add(x => x.Location.Description) .Add(x => x.Style.Description) .Add(x => x.Job.JobNumber) .Add(x => x.Units) .Add(x => x.Dimensions.UnitSize); } private bool HasValue(Dictionary values, string key) { return values.ContainsKey(key) && values[key] != null && !string.IsNullOrWhiteSpace(values[key] as string); } public override string FormatLookup(Dictionary values, IEnumerable exclude) { var result = new StringBuilder(); result.AppendFormat("{0}: {1} @ {2} {3}", values["Location.Description"], values["Units"], values["UnitSize"], values["Product.Units.Description"]); if (HasValue(values, "Style.Description")) result.AppendFormat(" ({0})", values["Style.Description"]); if (HasValue(values, "Job.JobNumber")) result.AppendFormat(" - Job {0}", values["Job.JobNumber"]); return result.ToString(); } public override Filter DefineFilter() { return new Filter(x => x.ID).IsEqualTo(CoreUtils.FullGuid); } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.Location.Code).ThenBy(x => x.Job.JobNumber); } } }