/// <summary> /// Конструктор принимает объект выбранного счета /// </summary> /// <param name="inclusionModel"></param> public TransferViewModel(InclusionModel inclusionModel) { GetTransferClients getTransferClients = ClientViewModel.AllClientsForTransfer; AllClients = getTransferClients(); BillOfTransfer = inclusionModel; }
/// <summary> /// Метод загрузки измененных данных в БД /// </summary> /// <param name="temp"></param> public static void UpdateBills(InclusionModel temp) { SqlCommand sqlCommand = new SqlCommand($"UPDATE Bills SET InclusionDateEnd='{temp.DateEndInclusion}', " + $"InclusionSum='{temp.Inclusion}', " + $"Percents='{temp.Percents}', " + $"Capitalize='{temp.Capitalize}', " + $"Total='{Convert.ToInt32(temp.Sum)}', " + $"StatusInclusion='{temp.StatusInclusion}' WHERE BillNum={temp.Bill}", ConnectionInfo.connection); sqlCommand.ExecuteNonQuery(); }
/// <summary> /// Метод загрузки измененных данных в БД /// </summary> /// <param name="temp"></param> public static void UpdateBills(InclusionModel temp) { TestBankLocalDBEntities billToSql = new TestBankLocalDBEntities(); // Получение определенного счета var newBill = billToSql.Bills.Where(x => x.BillNum == temp.Bill).FirstOrDefault(); if (newBill != null) { // Тут пытался заполнить свойства рефлексией, но, ели я правильно понял, то работать это будет только для однотипных объектов. #region Попытка изменения свойств рефлексией //foreach (var t in temp.GetType().GetProperties()) //{ // t.SetValue(newBill, t.GetValue(temp)); //} #endregion // Изменение значений для отдельного счета в БД newBill.InclusionDateEnd = temp.DateEndInclusion; newBill.InclusionSum = temp.Inclusion; newBill.Percents = temp.Percents; newBill.Capitalize = temp.Capitalize; newBill.Total = Convert.ToInt32(temp.Sum); newBill.StatusInclusion = temp.StatusInclusion; } try { // Сохранение данных в БД billToSql.SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } #region Запрос на изменение данных в БД //SqlCommand sqlCommand = new SqlCommand($"UPDATE Bills SET InclusionDateEnd='{temp.DateEndInclusion}', " + // $"InclusionSum='{temp.Inclusion}', " + // $"Percents='{temp.Percents}', " + // $"Capitalize='{temp.Capitalize}', " + // $"Total='{Convert.ToInt32(temp.Sum)}', " + // $"StatusInclusion='{temp.StatusInclusion}' WHERE BillNum={temp.Bill}", ConnectionInfo.connection); //sqlCommand.ExecuteNonQuery(); #endregion }
/// <summary> /// Метод меняет сумму вклада в зависимости от действия совершенного со вкладом /// </summary> private void ChangeMoneyMethod() { try { if (SelectInclusion != null) { if (RadioAdd == true) { // Прибавление вносимой суммы в выбранный вклад SelectInclusion.Inclusion = SelectInclusion.Inclusion + AddMoney; InclusionMoneyEvent?.Invoke($"Внесена сумма {AddMoney} на счет {SelectInclusion.Bill}"); } if (RadioWithdraw == true && SelectInclusion.Inclusion >= AddMoney) { // Вычитание вносимой суммы в выбранный вклад SelectInclusion.Inclusion = SelectInclusion.Inclusion - AddMoney; InclusionMoneyEvent?.Invoke($"Сумма {AddMoney} снята со счета {SelectInclusion.Bill}"); } else if (RadioWithdraw == true && SelectInclusion.Inclusion < AddMoney) { InclusionMoneyEvent?.Invoke($"На вашем счете недостаточно средств. Максимальная сума которую вы можете снять {SelectInclusion.Inclusion}"); } InclusionModel inclusionModel = new InclusionModel(); // Расчет итоговой суммы внесении дополнительной суммы SelectInclusion.Sum = inclusionModel.Calculate(SelectInclusion.DateInclusion, SelectInclusion.DateEndInclusion, SelectInclusion.Inclusion, SelectInclusion.Percents, SelectInclusion.Capitalize); } else { // Исключение вызывается если отсутствует фокус на один из счетов throw new BankException(2, "Не выбран счет", @"Выберите счет пополнения\списания"); } } catch (BankException e) when(e.Error == 2) { MessageBox.Show($"Код ошибки = {e.Error}. {e.Message}. {e.Recommendations}"); } }
/// <summary> /// Консруктор, принимающий переданный объект клиента /// </summary> /// <param name="incModel"></param> public InclusionViewModel(Client incModel) { InclusionModel inclusionModel = new InclusionModel(); // Расчет итоговой суммы по всем вкладам при открытии окна управления foreach (var t in incModel.Inclusions) { t.Sum = inclusionModel.Calculate(t.DateInclusion, t.DateEndInclusion, t.Inclusion, t.Percents); } IncModel = incModel; Percents = IncModel.Percents; this.inclusions = IncModel.Inclusions; DateEndInclusion = DateTime.Today.AddMonths(12); // Вызов метода определения статуса вклада InclusionStatus(); }