public void RestoreTradeDialog() { DateTime tradeDate = _selectedTransaction.TradeDate; int tradeFundId = _selectedTransaction.FundId; MessageBoxResult result = MessageBox.Show("Are you sure that you want to restore this trade?", "Restore Trade", button: MessageBoxButton.YesNo); switch (result) { case MessageBoxResult.Yes: if (!_staticReferences.GetPeriod(tradeDate, tradeFundId).isLocked) { if (_selectedTransaction.Security.AssetClass.Name == "FXForward") { _transactionService.RestoreFXTransaction(_selectedTransaction); } else { _transactionService.RestoreTransaction(_selectedTransaction); } SelectFundCommand.Execute(_currentFund.Symbol); } else { MessageBox.Show($"To Restore this trade the period of {tradeDate.ToString("dd-MM-yyyy")} must be unlocked", "Unable to Restore"); } break; case MessageBoxResult.No: break; } }
public void OpenFundInitialisationWindow() { if (_currentFund == null) { MessageBox.Show("You need to create a fund first", "Information"); } else { _windowFactory.CreateFundInitialisationWindow(_currentFund); SelectFundCommand.Execute(_currentFund.Symbol); } }
public void DeleteTradeDialog() { string n = Environment.NewLine; string message; DateTime tradeDate = _selectedTransaction.TradeDate; int tradeFundId = _selectedTransaction.FundId; if (!_selectedTransaction.isCashTransaction) { string secSymbol = _selectedTransaction.Security.Symbol; string secName = _selectedTransaction.Security.SecurityName; decimal quantity = _selectedTransaction.Quantity; decimal price = _selectedTransaction.Price; message = $"Are you sure you want to delete the following Trade:{n}Security: {secName} ({secSymbol}){n}Quantity: {quantity}{n}Price: {price}"; } else { string tradeType = _selectedTransaction.TransactionType.TypeName; string cashSymbol = _selectedTransaction.Currency.Symbol; decimal amount = _selectedTransaction.TradeAmount; message = $"Are you sure you want to delete the following Trade:{n}Type: {tradeType}{n}Security: {cashSymbol}{n}Transaction Amount: {amount}{n}"; } MessageBoxResult result = MessageBox.Show(message, "Delete Trade", button: MessageBoxButton.YesNo); switch (result) { case MessageBoxResult.Yes: // A bug that crashes the application is caused here if the period does not exist (i.e. fund is monthly...) TODO if (!_staticReferences.GetPeriod(tradeDate, tradeFundId).isLocked) { if (_selectedTransaction.Security.AssetClass.Name == "FXForward") { _transactionService.DeleteFXTransaction(_selectedTransaction); } else { _transactionService.DeleteTransaction(_selectedTransaction); } SelectFundCommand.Execute(_currentFund.Symbol); } else { MessageBox.Show($"To Delete this trade the period of {tradeDate.ToString("dd-MM-yyyy")} must be unlocked", "Unable to Restore"); } break; case MessageBoxResult.No: break; } }
public AllFundsViewModel(IFundService fundService, ITransactionService transactionService, IPortfolioService portfolioService, IStaticReferences staticReferences, IWindowFactory windowFactory) { _fundService = fundService; _portfolioService = portfolioService; _transactionService = transactionService; _staticReferences = staticReferences; _windowFactory = windowFactory; _lbFunds = _fundService.GetAllFundSymbols(); _currentFund = (lbFunds.Count != 0) ? _fundService.GetFund(_lbFunds[0]) : null; _asOfDate = (_currentFund != null) ? _staticReferences.GetMostRecentLockedDate(_currentFund.FundId) : DateTime.Today; _priceTable = _staticReferences.GetPriceTable(_asOfDate); SelectFundCommand = new SelectFundCommand(this, fundService, staticReferences); ShowNewTradeCommand = new ActionCommand(OpenNewTradeWindow); ShowEditTradeCommand = new ActionCommand(OpenEditTradeWindow); ShowDeleteTradeCommand = new ActionCommand(DeleteTradeDialog); ShowRestoreTradeCommand = new ActionCommand(RestoreTradeDialog); ShowNewFXTradeCommand = new ActionCommand(OpenNewFxTradeWindow); ShowNewCashTradeCommand = new ActionCommand(OpenNewCashTradeWindow); ShowEditCashTradeCommand = new ActionCommand(OpenEditCashTradeWindow); ShowNewInvestorActionCommand = new ActionCommand(OpenInvestorActionWindow); ShowFundInitialisationCommand = new ActionCommand(OpenFundInitialisationWindow); ShowFundPropertiesCommand = new ActionCommand(OpenFundPropertiesWindow); ShowFundMetricsCommand = new ActionCommand(OpenMetricsWindow); ShowPositionDetailsCommand = new ActionCommand(OpenPositionDetailWindow); ShowNavSummaryCommand = new ActionCommand(OpenNavSummaryWindow); DateSelectionChangedCommand = new ActionCommand(ChangeDateCommand); RefreshFundCommand = new ActionCommand(RefreshCurrentFund); }