| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | using System.Linq;using Comal.Classes;using InABox.Core;using System;namespace Comal.Stores{    internal class RequisitionItemStore : BaseStore<RequisitionItem>    {        private void UpdateTrackingKanban(RequisitionItem entity)        {            if (entity.RequisitionLink.ID == Guid.Empty)                return;                        var requi = new Requisition                { ID = entity.RequisitionLink.ID, Filled = entity.RequisitionLink.Filled, Archived = entity.RequisitionLink.Archived };            UpdateTrackingKanban<RequisitionKanban, Requisition, RequisitionLink>(requi, r =>            {                if (!r.Archived.Equals(DateTime.MinValue))                    return KanbanStatus.Complete;                if (!r.Filled.Equals(DateTime.MinValue))                    return KanbanStatus.Waiting;                if (Provider.Query(                        new Filter<RequisitionItem>(x => x.RequisitionLink.ID).IsEqualTo(r.ID)                            .And(x=>x.Done).IsEqualTo(true),                        Columns.None<RequisitionItem>().Add(x => x.ID)                    ).Rows.Any()                   )                    return KanbanStatus.InProgress;                return KanbanStatus.Open;            });        }        protected override void AfterSave(RequisitionItem entity)        {            base.AfterSave(entity);            UpdateTrackingKanban(entity);        }        protected override void AfterDelete(RequisitionItem entity)        {            base.AfterDelete(entity);            UpdateTrackingKanban(entity);        }    }}
 |