예제 #1
0
        private Core.SecurityModel DeserializeAdditionalSecurity(
            IBasket basket,
            Aims.Data.Server.SecurityModel securityModel,
            TopDown.Core.ManagingTargetingTypes.TargetingTypeGroup targetingTypeGroup,
            TopDown.Core.ManagingBenchmarks.BenchmarkRepository benchmarkRepository
            )
        {
            var baseExpression       = this.modelBuilder.CreateBaseExpression();
            var benchmarkExpression  = this.modelBuilder.CreateBenchmarkExpression();
            var baseActiveExpression = this.modelBuilder.CreateBaseActiveExpression(baseExpression, benchmarkExpression);
            var result = new Core.SecurityModel(
                this.deserializer.DeserializeSecurity(securityModel),
                baseExpression,
                benchmarkExpression,
                targetingTypeGroup.GetBgaPortfolios().Select(bgaPortfolio => new Core.PortfolioTargetModel(
                                                                 bgaPortfolio,
                                                                 this.modelBuilder.CreatePortfolioTargetExpression(bgaPortfolio.Name))
                                                             ).ToList(),
                baseActiveExpression
                );

            if (!String.IsNullOrWhiteSpace(targetingTypeGroup.BenchmarkIdOpt))
            {
                this.benchmarkInitializer.InitializeSecurity(basket, targetingTypeGroup.BenchmarkIdOpt, result, benchmarkRepository);
            }
            return(result);
        }
예제 #2
0
 public SecurityModel(
     Aims.Data.Server.SecurityModel security,
     EditableExpressionModel baseExpression,
     ExpressionModel benchmarkExpression,
     IEnumerable <PortfolioTargetModel> portfolioTargets,
     NullableExpressionModel baseActiveExpression
     )
     : this()
 {
     this.Security  = security;
     this.Base      = baseExpression;
     this.Benchmark = benchmarkExpression;
     this.PortfolioTargets.AddRange(portfolioTargets);
     this.BaseActive = baseActiveExpression;
 }