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;
        }
示例#2
0
        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);
        }
示例#3
0
        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;
        }