Exemple #1
0
        public SalesOrderSnapshot CreateNewSalesOrderSnapshot(Guid salesOrderId)
        {
            using (TrackerEntitiesContainer tec = GetNewTrackerObjectContext())
            {
                GetSalesOrderDetails_Result result = tec.GetSalesOrderDetails(salesOrderId).FirstOrDefault();
                if (result == null)
                {
                    return(null);
                }

                SalesOrderSnapshot snapshot = this.CreateSalesOrderSnapshot(result, salesOrderId);

                var historyEvents = tec.GetSalesOrderHistory(salesOrderId).OrderBy(he => he.eventDate);

                bool isFirstPrepayment = true;
                foreach (GetSalesOrderHistory_Result hResult in historyEvents)
                {
                    SalesOrderEvent soe = this.CreateSalesOrderEvent(hResult, snapshot, isFirstPrepayment);
                    snapshot.SalesOrderEvents.Add(soe);
                    if (soe.EventName == EventName.FirstPrepayment && isFirstPrepayment)
                    {
                        isFirstPrepayment = false;
                    }
                }

                return(snapshot);
            }
        }