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); } }
private SalesOrderSnapshot CreateSalesOrderSnapshot(GetSalesOrderDetails_Result result, Guid salesOrderId) { return(new SalesOrderSnapshot() { Id = salesOrderId, Contractor = new Contractor() { Address = result.contractorAddress, City = result.contractorCity, Email = result.contractorEmail, FullName = result.contractorFullName, IsAps = result.contractorIsAps == 1, Login = result.contractorLogin, Password = result.contractorPassword, Phone = result.contractorPhone, Type = result.contractorType ? 1 : 0 }, FittingDate = result.fittingDate, Number = result.orderNumber, RegistrationDate = result.registrationDate, Remarks = result.orderRemarks, ProductionOrderNumber = result.productionOrderNumber, SalesType = result.salesType, Status = result.status, Value = result.orderValue }); }