public Core.ManagingBpt.RootModel DeserializeRoot(RootModel model) { var residents = new List <Core.ManagingBpt.IGlobeResident>(); var globe = this.modelBuilder.CreateGlobeModel(residents); var computations = this.modelBuilder.CreateComputations(globe, this.globeTraverser); residents.AddRange(this.DeserializeGlobeResidents(model.Globe.Residents, computations)); var factors = this.DeserializeOverlayFactors(model.Factors); var cash = this.modelBuilder.CreateCash(computations); var portfolioScaledGrandTotalExpression = this.modelBuilder.CreateAddExpression(cash.PortfolioScaled, globe.PortfolioScaled); var trueExposureGrandTotal = this.modelBuilder.CreateAddExpression(cash.TrueExposure, globe.TrueExposure); var trueActiveGrandTotal = this.modelBuilder.CreateAddExpression(cash.TrueActive, globe.TrueActive); var result = new Core.ManagingBpt.RootModel( this.deserializer.DeserializeTargetingType(model.TargetingType), this.deserializer.DeserializeBroadGlobalActivePorfolio(model.BroadGlobalActiveProtfolio), this.DeserializeTargetingTypeBasketBaseValueChangesetInfo(model.LatestTtbbvChangeset), this.DeserializeTargetingTypeBasketPortfolioTargetChangesetInfo(model.LatestTtbptChangeset), this.DeserializeBgaPortfolioSecurityFactorChangesetInfo(model.LatestBgapsfChangeset), this.DeserializeBuPortfolioSecurityTargetChangesetInfo(model.LatestBupstChangeset), globe, cash, factors, portfolioScaledGrandTotalExpression, trueExposureGrandTotal, trueActiveGrandTotal, model.BenchmarkDate, model.IsUserPermittedToSave ); return(result); }
public RootModel SerializeRoot(Core.ManagingBpt.RootModel model, CalculationTicket ticket) { var hasBeenChanged = this.changeDetector.HasChanged(model); var result = new RootModel( this.serializer.SerializeTargetingType(model.TargetingType), this.serializer.SerializeBroadGlobalActivePorfolio(model.Portfolio), this.serializer.SerializeChangeset(model.LatestTtbbvChangeset), this.serializer.SerializeChangeset(model.LatestTtbptChangeset), this.serializer.SerializeChangeset(model.LatestPstoChangeset), this.serializer.SerializeChangeset(model.LatestPstChangeset), this.SerializeGlobe(model.Globe, ticket), this.SerializeCash(model.Cash, ticket), model.BenchmarkDate, hasBeenChanged, this.serializer.SerializeNullableExpression(model.PortfolioScaledGrandTotal, ticket), this.serializer.SerializeNullableExpression(model.TrueExposureGrandTotal, ticket), this.serializer.SerializeNullableExpression(model.TrueActiveGrandTotal, ticket), model.IsUserPermittedToSave ); result.Factors = this.SerializeFactors(model.Factors); return(result); }