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); }
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; }