public void CreateOrEdit() { if (!IsValid) { return; } if (_account == null) {//Создаём новый счёт try { _accountService.CreateNewAccount(AccountName, AccountType, AccountNumber, AccountCurrency, double.Parse(AccountBalance), AccountIsDefault); var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } else {//Сохраняем изменения _account.Name = AccountName; _account.Type = AccountType; _account.Number = AccountNumber; _account.Balance = double.Parse(AccountBalance); _account.Currency = AccountCurrency; _account.IsDefault = AccountIsDefault; try { _accountService.Update(_account); var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } }
public void Cancel() { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Cancel; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); }
public void CreateOrEdit() { if (!IsValid) { return; } if (_category == null) {//Создаём новую категорию try { _categoryService.CreateNew(CategoryName, SelectedIcon, CategoryIsDefault); var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } else {//Сохраняем изменения try { _category.Name = CategoryName; _category.IsDefault = CategoryIsDefault; _category.IconPath = SelectedIcon; _categoryService.Update(_category); var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } }
public void CreateOrEdit() { if (!IsValid) { return; } if (_transaction == null) {//Создаём новую транзакцию try { double value; if (!double.TryParse(TransactionValue, out value)) { return; } if (_type == TransactionType.Expensess) { value *= -1; } _transactionService.CreateNew(TransactionTitle, value, TransactionDate, TransactionNote, SelectedAccount.Id, SelectedCategory.Id, IsTransactioRepeatable); var account = _accountService.GetAccountById(SelectedAccount.Id); account.Balance += value; _accountService.Update(account); var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Create; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } else {//Редактируем транзакцию try { double value; if (!double.TryParse(TransactionValue, out value)) { return; } if (_type == TransactionType.Expensess) { value *= -1; } bool isValueChanged = false, isAccountChanged = false; var oldValue = value; var oldAccount = _transaction.AccountID; _transaction.Title = TransactionTitle; if (!Equals(_transaction.Value, value)) { _transaction.Value = value; isValueChanged = true; } if (!Equals(_transaction.AccountID, SelectedAccount.Id)) { _transaction.AccountID = SelectedAccount.Id; isAccountChanged = true; } _transaction.CategoryID = SelectedCategory.Id; _transaction.Date = TransactionDate; _transaction.Note = TransactionNote; _transaction.IsRepeatable = IsTransactioRepeatable; _transactionService.Update(_transaction); if (isAccountChanged) { var acc = _accountService.GetAccountById(oldAccount); acc.Balance -= oldValue; } if (isValueChanged) { var acc = _accountService.GetAccountById(_transaction.AccountID); if (!isAccountChanged) { acc.Balance -= oldValue; } acc.Balance += _transaction.Value; } var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Result = true; OperationDone?.Invoke(this, resultEventArgs); } catch (Exception ex) { var resultEventArgs = new OperationDoneEventArgs(); resultEventArgs.Type = OperationType.Update; resultEventArgs.Message = ex.Message; resultEventArgs.Result = false; OperationDone?.Invoke(this, resultEventArgs); } } }