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