public Deposit MapToDeposit(DepositViewModel depositVm, bool mapRelations = true) { var deposit = GetDeposit(depositVm); if (mapRelations) { if (depositVm.Trades != null) { foreach (var tradeVm in depositVm.Trades) { var trade = GetTrade(tradeVm); deposit.AddTrade(trade); } } if (depositVm.Dividends != null) { foreach (var dividendVm in depositVm.Dividends) { var dividend = GetDividend(dividendVm); deposit.AddDividend(dividend); } } } return deposit; }
// TODO: Right now called when a new trade is added in the deposit. Should support more cases. public DepositViewModel Refresh(DepositViewModel depositVm, TradeViewModel tradeVm) { var deposit = _viewModelToModelMapper.MapToDeposit(depositVm, true); var trade = _viewModelToModelMapper.MapToTrade(tradeVm); var depositInfoDTO = _depositService.Refresh(deposit, trade); return _modelToViewModelMapper.MapToDepositViewModel(depositInfoDTO); }
public void Update(DepositViewModel depositVm) { Guard.AgainstNull(() => depositVm); var deposit = _viewModelToModelMapper.MapToDeposit(depositVm, false); _depositService.UpdateDeposit(deposit); }
public IEnumerable<DividendViewModel> CalculateDividends( int year, DepositViewModel depositVm, IEnumerable<GeneralMeetingViewModel> generalMeetingVms) { var deposit = _viewModelToModelMapper.MapToDeposit(depositVm, true); var generalMeetings = _viewModelToModelMapper.MapToGeneralMeetings(generalMeetingVms); var dividends = _dividendService.CalculateDividends(year, deposit, generalMeetings); return _modelToViewModelMapper.MapToDividendViewModels(dividends) .Select(p => { p.Deposit = depositVm; return p; }); }
private Deposit GetDeposit(DepositViewModel depositVm) { if (depositVm == null) return null; return new Deposit( depositVm.Id, depositVm.Description, depositVm.IdentityNumber, depositVm.DepositType); }
public TradeInfoDto GetTradeInfo(TradeViewModel tradeVm, DepositViewModel depositVm) { Guard.AgainstNull(() => tradeVm, () => depositVm); var isBuy = tradeVm.IsBuy == true; var price = tradeVm.Price ?? 0; var quantity = tradeVm.Quantity ?? 0; var stockId = tradeVm.Stock.Id; var deposit = _viewModelToModelMapper.MapToDeposit(depositVm); return _tradeService.CalculateTradeInfo(isBuy, price, quantity, stockId, deposit); }
public void RefreshDepositTradeAdded(DepositViewModel depositVm, TradeViewModel tradeVm) { var refreshedDepositVm = _depositGateway.Refresh(depositVm, tradeVm); var refreshedTradeVm = refreshedDepositVm.Trades.Single(p => p.Id == tradeVm.Id); depositVm.SellableStockIds = refreshedDepositVm.SellableStockIds; depositVm.Trades.Add(refreshedTradeVm); var refreshedPosition = refreshedDepositVm.StockPositions.Single(p => p.Stock.Id == refreshedTradeVm.Stock.Id); depositVm.StockPositions.Single(p => p.Stock.Id == refreshedTradeVm.Stock.Id).Quantity = refreshedPosition.Quantity; // Add new trade to the collection of stocks. var stock = Stocks.Single(p => p.Id == refreshedTradeVm.Stock.Id); stock.Trades.Add(refreshedTradeVm); }
private void SaveDeposit() { if (!CanSaveDeposit()) return; var success = Validate(_viewService, () => { if (_isEdittingDeposit) _depositGateway.Update(Deposit); else _sharedDataProvider.AddDeposit(Deposit); }); if (!success) return; Deposit.CommitChanges(); Deposit = null; _viewService.NavigateTo(typeof(DepositManagementViewModel)); }
private void NavigateToTradeEditor(DepositViewModel deposit, bool? selectBuy, int? stockId) { _viewService.NavigateTo( typeof(TradeEditorViewModel), new TradeEditorViewModel.NavigationArgs(deposit, selectBuy, stockId)); }
public void AddDeposit(DepositViewModel deposit) { _depositGateway.Create(deposit); Deposits.Add(deposit); }
public void DeleteDeposit(DepositViewModel deposit) { _depositGateway.Delete(deposit.Id); Deposits.Remove(deposit); }
public YearlyReportDTO GetYearlyReport(int year, bool isMarried, DepositViewModel depositVm) { Guard.AgainstNull(() => depositVm); var deposit = _viewModelToModelMapper.MapToDeposit(depositVm, true); return _depositService.GetYearlyReport(year, isMarried, deposit); }
protected override void NavigatedBack() { Deposit.UndoChanges(); Deposit = null; }