public void Handle(QuoteCalculationItemSaveCommand command) { var entity = _entities.Get <QuoteCalculationItem>().SingleOrDefault(p => p.ID == command.ID); if (entity == null) { entity = new QuoteCalculationItem() { ID = command.ID, QuoteCalculationID = command.QuoteCalculationID, YearNo = command.YearNo, ROEPortionAmount = command.ROEPortionAmount, ZARPortionAmount = command.ZARPortionAmount, ROE = command.ROE, IncrPerc = command.IncrPerc, AmountInclVAT = command.AmountInclVAT, AmountExclVAT = command.AmountExclVAT }; _entities.Create(entity); } else { entity.QuoteCalculationID = command.QuoteCalculationID; entity.YearNo = command.YearNo; entity.ROEPortionAmount = command.ROEPortionAmount; entity.ZARPortionAmount = command.ZARPortionAmount; entity.ROE = command.ROE; entity.IncrPerc = command.IncrPerc; entity.AmountExclVAT = command.AmountExclVAT; entity.AmountInclVAT = command.AmountInclVAT; } _entities.SaveChanges(); command.ID = entity.ID; }
private EWS.Domain.Model.QuoteCalculationItem[] GetQuoteCalculationItemsStructure(Domain.Data.DataModel.QuoteCalculation calc, short NoOfYears, DateTime?StartDate = null) { QuoteCalculationItem[] models = new QuoteCalculationItem[NoOfYears]; // new/old ROE and VAT values needed ......................................... decimal oldROE; decimal newROE; float VAT; QuoteQuery quotequery = new QuoteQuery() { ID = calc.QuoteID }; EWS.Domain.Data.DataModel.Quote quoteEntity = _queryProcessor.Execute(quotequery); newROE = quoteEntity.ROE; if (!string.IsNullOrEmpty(quoteEntity.QuoteRef)) { SourceQuoteQuery query = new SourceQuoteQuery() { QuoteRef = quoteEntity.QuoteRef }; SourceQuote entity = _queryProcessor.Execute(query); oldROE = entity.ROE; VAT = entity.VAT; } else { ContractQuery query = new ContractQuery() { ID = quoteEntity.BaseContractID.Value }; EWS.Domain.Data.DataModel.Contract entity = _queryProcessor.Execute(query); oldROE = entity.ROE; VAT = entity.VAT; } // Currently Saved values .................................................... QuoteCalculationItemsQuery qury = new QuoteCalculationItemsQuery() { QuoteCalculationID = calc.ID }; IEnumerable <Domain.Data.DataModel.QuoteCalculationItem> calcs = _queryProcessor.Execute(qury); // Setup the structure ....................................................... for (byte i = 0; i < NoOfYears; i++) { byte yearno = (byte)(i + 1); models[i] = new QuoteCalculationItem() { YearNo = yearno, NewROE = newROE, TOPSROE = oldROE, VAT = VAT, UseNewROE = true, Increment = (i == 0 ? 0 : EWS.Domain.Defaults.AnnualIncrement) }; if (StartDate.HasValue) { models[i].StartDate = StartDate.Value.AddYears(i); models[i].EndDate = StartDate.Value.AddYears(yearno).AddDays(-1); } Domain.Data.DataModel.QuoteCalculationItem item = calcs.FirstOrDefault(c => c.YearNo == yearno); if (item != null) { models[i].ID = item.ID; models[i].Increment = item.IncrPerc; models[i].UseNewROE = (item.ROE == newROE); } } return(models); }
private static void MapEntityToModel(Domain.Data.DataModel.QuoteCalculationItem item, QuoteCalculationItem model) { model.ID = item.ID; model.YearNo = item.YearNo; model.ROEPortion = item.ROEPortionAmount; model.ZARPortion = item.ZARPortionAmount; model.UseNewROE = (item.ROE == model.NewROE); model.Increment = item.IncrPerc; model.AmountExclVAT = item.AmountExclVAT; model.AmountInclVAT = item.AmountInclVAT; }