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