public void TakeData(BuRootModel model)
        {
            this.KeptRootModel = model;
            this.RegisterInChangeWatcher(model);
            var lines = Helper.ToObservableCollection(model.Items.Select(x => Helper.As <IBuLineModel>(x)));

            lines.Add(new BuCashModel(model.Cash));
            lines.Add(new BuTotalModel(model.TargetTotal));
            this.Lines = lines;
            var portfolioId           = this.LastValidInput.BottomUpPortfolioId;
            var registeredExpressions = new List <EditableExpressionModel>();

            foreach (var line in model.Items)
            {
                EditableExpressionModel targetExpression = line.Target;
                var securityId = line.Security.Id;
                var requestBuPortfolioSecurityTargetCommentsCommand = new DelegateCommand(delegate
                {
                    this.RequesCommentsForBuPortfolioSecurityTarget(portfolioId, securityId);
                });
                targetExpression.RegisterForBeingWatched(this, requestBuPortfolioSecurityTargetCommentsCommand);
                registeredExpressions.Add(targetExpression);
            }


            this.FinishLoading();
            this.OnGotData();
        }
 public PortfolioTargetModel(
     BroadGlobalActivePortfolioModel broadGlobalActivePortfolio,
     EditableExpressionModel portfolioTargetExpression
     )
 {
     this.BroadGlobalActivePortfolio = broadGlobalActivePortfolio;
     this.PortfolioTarget            = portfolioTargetExpression;
 }
        public void GetNotifiedAboutChangedValue(EditableExpressionModel model)
        {
            if (this.lastExpressionModel != null)
            {
                this.lastExpressionModel.IsLastEdited = false;
            }

            model.IsLastEdited = true;
            this.ResetRecalculationTimer();
            this.lastExpressionModel = model;
        }
Example #4
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;
 }
 public UnsavedBasketCountryModel(
     EditableExpressionModel baseExpression,
     NullableExpressionModel baseActiveExpression,
     ExpressionModel benchmarkExpression,
     Aims.Data.Server.CountryModel country,
     ExpressionModel overlayExpression,
     EditableExpressionModel portfolioAdjustmentExpression,
     NullableExpressionModel portfolioScaledExpression,
     NullableExpressionModel trueActiveExpression,
     NullableExpressionModel trueExposureExpression
     )
 {
     this.Base                = baseExpression;
     this.BaseActive          = baseActiveExpression;
     this.Benchmark           = benchmarkExpression;
     this.Country             = country;
     this.Overlay             = overlayExpression;
     this.PortfolioAdjustment = portfolioAdjustmentExpression;
     this.PortfolioScaled     = portfolioScaledExpression;
     this.TrueActive          = trueActiveExpression;
     this.TrueExposure        = trueExposureExpression;
 }
 public BasketCountryModel(
     EditableExpressionModel baseExpression,
     NullableExpressionModel baseActiveExpression,
     CountryBasketModel basket,
     ExpressionModel benchmarkExpression,
     ExpressionModel overlayExpression,
     EditableExpressionModel portfolioAdjustmentExpression,
     NullableExpressionModel portfolioScaledExpression,
     NullableExpressionModel trueActiveExpression,
     NullableExpressionModel trueExposureExpression
     )
 {
     this.Base                = baseExpression;
     this.BaseActive          = baseActiveExpression;
     this.Basket              = basket;
     this.Benchmark           = benchmarkExpression;
     this.Overlay             = overlayExpression;
     this.PortfolioAdjustment = portfolioAdjustmentExpression;
     this.PortfolioScaled     = portfolioScaledExpression;
     this.TrueActive          = trueActiveExpression;
     this.TrueExposure        = trueExposureExpression;
 }
Example #7
0
        protected void TakeData(BgaRootModel data)
        {
            this.defaultExpandCollapseStateSetter.SetDefaultCollapseExpandState(data.Globe);
            var residents = this.traverser.Traverse(data);

            // register for listening to any change to base and portfolio adjustment, if change happens we need to initiate recalculation
            this.RegisterResidentsForValueChangeWatch(residents);
            this.RegisterOveralyFactorsForValueChangeWatch(data.Factors);

            // we need an observable collection to make filtering (collapsing/expanding) work, because it is triggered by the CollectionChanged event
            this.Residents = new ObservableCollection <IGlobeResident>(residents);
            this.Factors   = new ObservableCollection <BgaFactorItemModel>(data.Factors.Items);
            this.RootModel = data;

            var targetingTypeId = this.LastValidInput.TargetingTypeId;
            var portfolioId     = this.LastValidInput.BroadGlobalActivePortfolioId;

            var registeredExpressions = new List <EditableExpressionModel>();

            foreach (var factor in factors)
            {
                EditableExpressionModel factorExpression = factor.OverlayFactor;
                var securityId = factor.BottomUpPortfolio.Fund.Id;
                var requestOverlayFactorCommentsCommand = new DelegateCommand(delegate
                {
                    this.RequestOverlayFactorComments(portfolioId, securityId);
                });
                factorExpression.RegisterForBeingWatched(this, requestOverlayFactorCommentsCommand);
                registeredExpressions.Add(factorExpression);
            }

            foreach (var resident in residents)
            {
                var basketId = -1;

                EditableExpressionModel baseExpression = null;
                EditableExpressionModel portfolioAdjustmentExpression = null;
                if (resident is BasketCountryModel)
                {
                    var r = resident as BasketCountryModel;
                    basketId       = r.Basket.Id;
                    baseExpression = r.Base;
                    portfolioAdjustmentExpression = r.PortfolioAdjustment;
                }
                if (resident is BasketRegionModel)
                {
                    var r = resident as BasketRegionModel;
                    basketId       = r.Basket.Id;
                    baseExpression = r.Base;
                    portfolioAdjustmentExpression = r.PortfolioAdjustment;
                }

                if (basketId > -1)
                {
                    var requestBaseCommentsCommand = new DelegateCommand(delegate
                    {
                        this.RequestBaseComments(targetingTypeId, basketId);
                    });
                    baseExpression.RegisterForBeingWatched(this, requestBaseCommentsCommand);
                    registeredExpressions.Add(baseExpression);

                    var requestPortfolioAdjustmentCommentsCommand = new DelegateCommand(delegate
                    {
                        this.RequestPortfolioAdjustmentComments(targetingTypeId, portfolioId, basketId);
                    });
                    portfolioAdjustmentExpression.RegisterForBeingWatched(this, requestPortfolioAdjustmentCommentsCommand);
                    registeredExpressions.Add(portfolioAdjustmentExpression);
                }
            }

            this.FinishLoading();
            this.OnGotData();
        }
Example #8
0
 public void GetNotifiedAboutChangedValue(EditableExpressionModel model)
 {
     base.ResetRecalculationTimer();
 }
Example #9
0
 public ItemModel(SecurityModel security, EditableExpressionModel targetExpression)
     : this()
 {
     this.Security = security;
     this.Target   = targetExpression;
 }
 public FactorItemModel(BottomUpPortfolioModel bottomUpPortfolio, EditableExpressionModel editableExpression)
 {
     this.BottomUpPortfolio = bottomUpPortfolio;
     this.OverlayFactor     = editableExpression;
 }