Example #1
0
        public void CreatePositionDetailsWindows(ValuedSecurityPosition position, Fund fund)
        {
            Window view = new PositionDetailWindow();
            ViewModelWindowBase viewModel = new PositionDetailWindowViewModel(_priceService, _factTableService, position, fund);

            view = ApplyWindowAttributes(view, viewModel);
            view.ShowDialog();
        }
        public PositionDetailWindowViewModel(IPriceService priceService, IFactTableService factTableService,
                                             ValuedSecurityPosition valuedPosition, Fund fund)
        {
            _factTableService = factTableService;
            _priceService     = priceService;
            _valuedPosition   = valuedPosition;
            PositionOpenLots  = _valuedPosition.Position.OpenLots.ToList();
            Title             = $"{_valuedPosition.Position.Security.SecurityName} ({_valuedPosition.Position.Security.Symbol})";
            FundName          = fund.FundName;

            List <PositionFACT> positionHistory = _factTableService.GetAllFundStoredPositions(fund.FundId, valuedPosition.Position.Security.SecurityId);

            PositionPriceLineChartYAxis = new ChartValues <decimal>(positionHistory.Select(ph => ph.RealisedPnl + ph.UnrealisedPnl));
            PositionPriceLineChartXAxis = positionHistory.Select(ph => ph.PositionDate.ToString("dd/MM/yyyy")).ToArray();
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            GroupItem           groupItem           = value as GroupItem;
            CollectionViewGroup collectionViewGroup = groupItem.Content as CollectionViewGroup;
            decimal             sum = 0;

            foreach (var sec in collectionViewGroup.Items)
            {
                ValuedSecurityPosition position = sec as ValuedSecurityPosition;
                sum += position.MarketValueBase;
            }
            string sumString = sum.ToString("N2");

            return($"Total Market Value: {sumString}");
        }