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