/// <summary> /// Добавляет новое списание пользователя. /// </summary> /// <param name="newExpense">Новое списание пользователя</param> public void AddNewUserExpense(ExpenseDTO newExpense) { if (newExpense != null) { UserExpenses.Add(newExpense); } }
/// <summary> /// Добавляет новое списение ОСП. /// </summary> /// <param name="newExpense">Новое списание ОСП</param> public void AddNewOspExpense(ExpenseDTO newExpense) { if (newExpense != null) { Expenses.Add(newExpense); } }
/// <summary> /// Обновляет одно списание. /// </summary> /// <param name="editedExpense">Отредактированное списание</param> public void UpdateExpense(ExpenseDTO editedExpense) { // Найти списание, равное редактированному, в текущем списке списаний ОСП. ExpenseDTO expense = Expenses.FirstOrDefault(x => x.Id == editedExpense.Id); // Если списание найдено. if (expense != null) { // Присвоить значения свойств отредактированного списания текущему. foreach (var prop in expense.GetType().GetProperties()) { prop.SetValue(expense, prop.GetValue(editedExpense)); } } // Если отредактированное списание относится к текущему пользователю программы. if (CurrentUser.Id == editedExpense.User.Id) { // Найти списание, равное редактированному, в текущем списке списаний пользователя. ExpenseDTO userExpense = UserExpenses.FirstOrDefault(x => x.Id == editedExpense.Id); // Если списание найдено. if (userExpense != null) { // Присвоить значения свойств отредактированного списания текущему. foreach (var prop in userExpense.GetType().GetProperties()) { prop.SetValue(userExpense, prop.GetValue(editedExpense)); } } } }