public void DeleteInstallmentType(InstallmentType pInstallmentType) { if (_installmentTypeManager.NumberOfLinksToInstallmentType(pInstallmentType) > 0) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeValuesAreUsed); } _installmentTypeManager.DeleteInstallmentType(pInstallmentType); }
public static DateTime GetLastMaturity(DateTime date, InstallmentType periodicity, int numberPeriods) { for (int i = 0; i < numberPeriods; i++) { date = date.AddMonths(-periodicity.NbOfMonths).AddDays(-periodicity.NbOfDays); } return(date); }
public void DeleteInstallmentType(InstallmentType installmentType) { const string q = @"DELETE FROM [InstallmentTypes] WHERE id = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", installmentType.Id); c.ExecuteNonQuery(); } }
private static void CheckValueForPackageInstallmentType(InstallmentType pInstallmentType) { if (pInstallmentType == null) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeIsNull); } if (pInstallmentType.Id == 0) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeIsBad); } }
public int AddInstallmentType(InstallmentType installmentType) { string sqlText = "INSERT INTO [InstallmentTypes]([name], [nb_of_days], [nb_of_months]) "+ "VALUES(@name,@days,@months) SELECT @@IDENTITY"; SqlCommand insert = new SqlCommand(sqlText,CurrentConnection); DatabaseHelper.InsertStringNVarCharParam("@name",insert,installmentType.Name); DatabaseHelper.InsertInt32Param("@days",insert,installmentType.NbOfDays); DatabaseHelper.InsertInt32Param("@months",insert,installmentType.NbOfMonths); return int.Parse(insert.ExecuteScalar().ToString()); }
public int AddInstallmentType(InstallmentType installmentType) { const string q = @"INSERT INTO [InstallmentTypes]([name], [nb_of_days], [nb_of_months]) VALUES(@name, @days, @months) SELECT SCOPE_IDENTITY()" ; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { SetInstallmentType(c, installmentType); return(int.Parse(c.ExecuteScalar().ToString())); } }
public int AddInstallmentType(InstallmentType installmentType) { string sqlText = "INSERT INTO [InstallmentTypes]([name], [nb_of_days], [nb_of_months]) " + "VALUES(@name,@days,@months) SELECT @@IDENTITY"; SqlCommand insert = new SqlCommand(sqlText, CurrentConnection); DatabaseHelper.InsertStringNVarCharParam("@name", insert, installmentType.Name); DatabaseHelper.InsertInt32Param("@days", insert, installmentType.NbOfDays); DatabaseHelper.InsertInt32Param("@months", insert, installmentType.NbOfMonths); return(int.Parse(insert.ExecuteScalar().ToString())); }
public void EditInstallmentType(InstallmentType installmentType) { const string q = @"UPDATE [InstallmentTypes] SET [name] = @name, [nb_of_days] = @days, [nb_of_months] = @months WHERE id = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { SetInstallmentType(c, installmentType); c.AddParam("@id", installmentType.Id); c.ExecuteNonQuery(); } }
public InstallmentType AddBiWeeklyInstallmentType() { InstallmentType biWeekly = new InstallmentType(); biWeekly.Name = "Bi-Weekly"; biWeekly.NbOfDays = 14; biWeekly.NbOfMonths = 0; string sqlText = "INSERT INTO InstallmentTypes (name,nb_of_days,nb_of_months) VALUES ('" + biWeekly.Name + "'," + biWeekly.NbOfDays + "," + biWeekly.NbOfMonths + ") SELECT SCOPE_IDENTITY()"; OpenCbsCommand insert = new OpenCbsCommand(sqlText, SqlConnection); biWeekly.Id = int.Parse(insert.ExecuteScalar().ToString()); return(biWeekly); }
private void buttonDelete_Click(object sender, EventArgs e) { if (listViewInstallmentTypes.SelectedItems.Count > 0) { DialogResult res = MessageBox.Show(GetString("ConfirmDelete"), GetString("Confirm"), MessageBoxButtons.YesNo); if (res != DialogResult.Yes) { return; } InstallmentType type = (InstallmentType)listViewInstallmentTypes.SelectedItems[0].Tag; ModifyInstallmentTypes(Action.Delete, type); } }
public void TestIsThisProductCodeAlreadyExist() { SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OpenCBS.Enums.OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 500, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, Currency = new Currency { Id = 1 }, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfWeek }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1 }; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; Assert.IsTrue(_savingProductManager.IsThisProductCodeAlreadyExist("P1")); Assert.IsFalse(_savingProductManager.IsThisProductCodeAlreadyExist(savingsProduct.Code)); _savingProductManager.Add(savingsProduct); Assert.IsTrue(_savingProductManager.IsThisProductCodeAlreadyExist(savingsProduct.Code)); }
public int AddInstallmentType(InstallmentType pInstallmentType) { List <InstallmentType> list = _installmentTypeManager.SelectAllInstallmentTypes(); foreach (InstallmentType type in list) { if (type.Name.ToLower() == pInstallmentType.Name.ToLower()) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeNameAlreadyExist); } if (type.NbOfDays == pInstallmentType.NbOfDays && type.NbOfMonths == pInstallmentType.NbOfMonths) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeValuesAlreadyExist); } } return(_installmentTypeManager.AddInstallmentType(pInstallmentType)); }
public int NumberOfLinksToInstallmentType(InstallmentType installmentType) { const string q = @"SELECT COUNT(installment_type) FROM ( SELECT installment_type FROM Credit UNION ALL SELECT installment_type FROM dbo.Packages UNION ALL SELECT installment_types_id AS [installment_type] FROM dbo.TermDepositProducts UNION ALL SELECT agio_fees_freq AS [installment_type] FROM dbo.SavingBookProducts UNION ALL SELECT management_fees_freq AS [installment_type] FROM dbo.SavingBookProducts ) AS T WHERE T.installment_type = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", installmentType.Id); return(int.Parse(c.ExecuteScalar().ToString())); } }
/// <summary> /// This methods gives us all installmentType in database /// </summary> /// <returns>Collection of InstallmentType objects</returns> public List <InstallmentType> SelectAllInstallmentTypes() { string SqlText = "SELECT id, name, nb_of_days, nb_of_months FROM InstallmentTypes"; SqlCommand selectInstallments = new SqlCommand(SqlText, CurrentConnection); using (SqlDataReader reader = selectInstallments.ExecuteReader()) { List <InstallmentType> installmentTypeList = new List <InstallmentType>(); while (reader.Read()) { InstallmentType installmentType = new InstallmentType(); installmentType.Id = DatabaseHelper.GetInt32("id", reader); installmentType.Name = DatabaseHelper.GetString("name", reader); installmentType.NbOfDays = DatabaseHelper.GetInt32("nb_of_days", reader); installmentType.NbOfMonths = DatabaseHelper.GetInt32("nb_of_months", reader); installmentTypeList.Add(installmentType); } return(installmentTypeList); } }
/// <summary> /// This methods gives us all installmentType in database /// </summary> /// <returns>Collection of InstallmentType objects</returns> public List<InstallmentType> SelectAllInstallmentTypes() { string SqlText = "SELECT id, name, nb_of_days, nb_of_months FROM InstallmentTypes"; SqlCommand selectInstallments = new SqlCommand(SqlText,CurrentConnection); using (SqlDataReader reader = selectInstallments.ExecuteReader()) { List<InstallmentType> installmentTypeList = new List<InstallmentType>(); while(reader.Read()) { InstallmentType installmentType = new InstallmentType(); installmentType.Id = DatabaseHelper.GetInt32("id",reader); installmentType.Name = DatabaseHelper.GetString("name",reader); installmentType.NbOfDays = DatabaseHelper.GetInt32("nb_of_days",reader); installmentType.NbOfMonths = DatabaseHelper.GetInt32("nb_of_months",reader); installmentTypeList.Add(installmentType); } return installmentTypeList; } }
private static void SetInstallmentType(OpenCbsCommand c, InstallmentType pInstallmentType) { c.AddParam("@name", pInstallmentType.Name); c.AddParam("@days", pInstallmentType.NbOfDays); c.AddParam("@months", pInstallmentType.NbOfMonths); }
public DateTime GetNextMaturity(DateTime currentMaturityDate, InstallmentType periodicity) { return(DateCalculationStrategy.GetNextMaturity(currentMaturityDate, periodicity, 1)); }
public void EditInstallmentType(InstallmentType pInstallmentType) { CheckExistingInstallmentType(pInstallmentType, editMode: true); _installmentTypeManager.EditInstallmentType(pInstallmentType); }
public int AddInstallmentType(InstallmentType pInstallmentType) { CheckExistingInstallmentType(pInstallmentType); return(_installmentTypeManager.AddInstallmentType(pInstallmentType)); }
public IActionResult CalculateInstallments([FromQuery] double totalValue, [FromQuery] int numberOfYears, [FromQuery] InstallmentType installmentType) { return(Ok(Mapper.Map <IEnumerable <InstallmentViewModel> >(_installmentCalculatorResolver.CalculateInstallments(totalValue, numberOfYears, installmentType)))); }
public void TestIfInstallmentTypeIdIsCorrectlySetAndRetrieved() { installmentType = new InstallmentType(); installmentType.Id = 1; Assert.AreEqual(1, installmentType.Id); }
/// <summary> /// InstallmentType Finder by id /// </summary> /// <param name="instId">id searched</param> /// <returns></returns> public InstallmentType SelectInstallmentTypeById(int instId) { string SqlText = "SELECT id, name, nb_of_days, nb_of_months FROM InstallmentTypes WHERE id = @id"; SqlCommand selectInstallments = new SqlCommand(SqlText,CurrentConnection); selectInstallments.Parameters.Add("@id",SqlDbType.Int,4); selectInstallments.Parameters["@id"].Value = instId; using (SqlDataReader reader = selectInstallments.ExecuteReader()) { if(reader.HasRows) { reader.Read(); InstallmentType installmentType = new InstallmentType(); installmentType.Id = DatabaseHelper.GetInt32("id",reader); installmentType.Name = DatabaseHelper.GetString("name",reader); installmentType.NbOfDays = DatabaseHelper.GetInt32("nb_of_days",reader); installmentType.NbOfMonths = DatabaseHelper.GetInt32("nb_of_months",reader); return installmentType; } else { return null; } } }
public void TestIfInstallmentTypeNameIsCorrectlySetAndRetrieved() { installmentType = new InstallmentType(); installmentType.Name = "Monthly"; Assert.AreEqual("Monthly", installmentType.Name); }
public void TestNbOfMonthsEqualsToZeroWhenNoSpecifiedValue() { InstallmentType noMonths = new InstallmentType(); Assert.AreEqual(0, noMonths.NbOfMonths); }
public void TestGetSavingBookProduct() { Assert.Ignore(); // Ru55 SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 500, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Monthly, InterestFrequency = OSavingInterestFrequency.EndOfYear, CalculAmountBase = OSavingCalculAmountBase.MinimalAmount, EntryFeesMax = 20, EntryFeesMin = 10, WithdrawFeesType = OSavingsFeesType.Flat, FlatWithdrawFeesMin = 1, FlatWithdrawFeesMax = 5, TransferFeesType = OSavingsFeesType.Flat, FlatTransferFeesMin = 1, FlatTransferFeesMax = 5, OverdraftFeesMin = 2, OverdraftFeesMax = 6, AgioFeesMin = 1, AgioFeesMax = 4, Currency = new Currency { Id = 1 } }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1 }; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0, Id = 2 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; _savingProductManager.Add(savingsProduct); SavingsBookProduct loadedProduct = (SavingsBookProduct)_savingProductManager.SelectSavingProduct(savingsProduct.Id); Assert.AreEqual(savingsProduct.Id, loadedProduct.Id); Assert.AreEqual(savingsProduct.ClientType, loadedProduct.ClientType); Assert.AreEqual(savingsProduct.Name, loadedProduct.Name); Assert.AreEqual(savingsProduct.BalanceMax.Value, loadedProduct.BalanceMax.Value); Assert.AreEqual(savingsProduct.BalanceMin.Value, loadedProduct.BalanceMin.Value); Assert.AreEqual(savingsProduct.InitialAmountMax.Value, loadedProduct.InitialAmountMax.Value); Assert.AreEqual(savingsProduct.InitialAmountMin.Value, loadedProduct.InitialAmountMin.Value); Assert.AreEqual(savingsProduct.DepositMax.Value, loadedProduct.DepositMax.Value); Assert.AreEqual(savingsProduct.DepositMin.Value, loadedProduct.DepositMin.Value); Assert.AreEqual(savingsProduct.WithdrawingMax.Value, loadedProduct.WithdrawingMax.Value); Assert.AreEqual(savingsProduct.WithdrawingMin.Value, loadedProduct.WithdrawingMin.Value); Assert.AreEqual(savingsProduct.TransferMin.Value, loadedProduct.TransferMin.Value); Assert.AreEqual(savingsProduct.TransferMax.Value, loadedProduct.TransferMax.Value); Assert.AreEqual(savingsProduct.InterestRate, loadedProduct.InterestRate); Assert.AreEqual(savingsProduct.InterestRateMax, loadedProduct.InterestRateMax); Assert.AreEqual(savingsProduct.InterestRateMin, loadedProduct.InterestRateMin); Assert.AreEqual(savingsProduct.InterestBase, loadedProduct.InterestBase); Assert.AreEqual(savingsProduct.InterestFrequency, loadedProduct.InterestFrequency); Assert.AreEqual(savingsProduct.CalculAmountBase, loadedProduct.CalculAmountBase); Assert.AreEqual(savingsProduct.EntryFees.HasValue, loadedProduct.EntryFees.HasValue); Assert.AreEqual(savingsProduct.EntryFeesMax, loadedProduct.EntryFeesMax); Assert.AreEqual(savingsProduct.EntryFeesMin, loadedProduct.EntryFeesMin); Assert.AreEqual(savingsProduct.WithdrawFeesType, loadedProduct.WithdrawFeesType); Assert.AreEqual(savingsProduct.FlatWithdrawFees.HasValue, loadedProduct.FlatWithdrawFees.HasValue); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMax, loadedProduct.FlatWithdrawFeesMax); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMin, loadedProduct.FlatWithdrawFeesMin); Assert.AreEqual(savingsProduct.RateWithdrawFees, loadedProduct.RateWithdrawFees); Assert.AreEqual(savingsProduct.RateWithdrawFeesMax, loadedProduct.RateWithdrawFeesMax); Assert.AreEqual(savingsProduct.RateWithdrawFeesMin, loadedProduct.RateWithdrawFeesMin); Assert.AreEqual(savingsProduct.TransferFeesType, loadedProduct.TransferFeesType); Assert.AreEqual(savingsProduct.FlatTransferFees.HasValue, loadedProduct.FlatTransferFees.HasValue); Assert.AreEqual(savingsProduct.FlatTransferFeesMax, loadedProduct.FlatTransferFeesMax); Assert.AreEqual(savingsProduct.FlatTransferFeesMin, loadedProduct.FlatTransferFeesMin); Assert.AreEqual(savingsProduct.RateTransferFees, loadedProduct.RateTransferFees); Assert.AreEqual(savingsProduct.RateTransferFeesMax, loadedProduct.RateTransferFeesMax); Assert.AreEqual(savingsProduct.RateTransferFeesMin, loadedProduct.RateTransferFeesMin); }
public void TestUpdateUsedSavingBookProduct() { Assert.Ignore(); // Ru55 SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 300, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfYear, EntryFeesMin = 10, EntryFeesMax = 20, WithdrawFeesType = OSavingsFeesType.Rate, RateWithdrawFeesMin = 0.01, RateWithdrawFeesMax = 0.05, TransferFeesType = OSavingsFeesType.Rate, RateTransferFeesMin = 0.01, RateTransferFeesMax = 0.05, Currency = new Currency { Id = 1 } }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1 }; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0, Id = 2 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; _savingProductManager.Add(savingsProduct); SavingBookContract saving = new SavingBookContract(ApplicationSettings.GetInstance(""), new User() { Id = 1 }, new DateTime(2009, 01, 01), savingsProduct, null) { Code = "S/CR/2009/P123/BAR-1", Status = OSavingsStatus.Active, InterestRate = 0.01 }; _savingManager = (SavingManager)container["SavingManager"]; _savingManager.Add(saving, new Person { Id = 6 }); SavingsBookProduct loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); savingsProduct.Name = "Good updating product"; savingsProduct.ClientType = OClientTypes.Person; savingsProduct.Code = "P125"; savingsProduct.InitialAmountMin = 200; savingsProduct.InitialAmountMax = 400; savingsProduct.DepositMin = 500; savingsProduct.DepositMax = 800; savingsProduct.WithdrawingMin = 800; savingsProduct.WithdrawingMax = 900; savingsProduct.TransferMin = 500; savingsProduct.TransferMax = 1000; savingsProduct.InterestRateMin = 0.24; savingsProduct.InterestRateMax = 0.20; savingsProduct.BalanceMin = 2000; savingsProduct.BalanceMax = 4000; savingsProduct.InterestBase = OSavingInterestBase.Monthly; savingsProduct.InterestFrequency = OSavingInterestFrequency.EndOfMonth; savingsProduct.EntryFees = 15; savingsProduct.EntryFeesMax = null; savingsProduct.EntryFeesMin = null; savingsProduct.WithdrawFeesType = OSavingsFeesType.Rate; savingsProduct.RateWithdrawFees = 0.03; savingsProduct.RateWithdrawFeesMin = null; savingsProduct.RateWithdrawFeesMax = null; savingsProduct.FlatWithdrawFeesMin = null; savingsProduct.FlatWithdrawFeesMax = null; savingsProduct.TransferFeesType = OSavingsFeesType.Rate; savingsProduct.RateTransferFees = 0.03; savingsProduct.RateTransferFeesMin = null; savingsProduct.RateTransferFeesMax = null; savingsProduct.FlatTransferFeesMin = null; savingsProduct.FlatTransferFeesMax = null; savingsProduct.Currency = new Currency { Id = 2 }; _savingProductManager.Update(savingsProduct); loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); Assert.AreEqual(savingsProduct.Id, loadedProduct.Id); Assert.AreEqual(OClientTypes.All, loadedProduct.ClientType); Assert.AreEqual("Good savings account", loadedProduct.Name); Assert.AreEqual("P123", loadedProduct.Code); Assert.AreEqual(savingsProduct.BalanceMax.Value, loadedProduct.BalanceMax.Value); Assert.AreEqual(savingsProduct.BalanceMin.Value, loadedProduct.BalanceMin.Value); Assert.AreEqual(savingsProduct.InitialAmountMax.Value, loadedProduct.InitialAmountMax.Value); Assert.AreEqual(savingsProduct.InitialAmountMin.Value, loadedProduct.InitialAmountMin.Value); Assert.AreEqual(savingsProduct.DepositMax.Value, loadedProduct.DepositMax.Value); Assert.AreEqual(savingsProduct.DepositMin.Value, loadedProduct.DepositMin.Value); Assert.AreEqual(savingsProduct.WithdrawingMax.Value, loadedProduct.WithdrawingMax.Value); Assert.AreEqual(savingsProduct.WithdrawingMin.Value, loadedProduct.WithdrawingMin.Value); Assert.AreEqual(savingsProduct.TransferMin.Value, loadedProduct.TransferMin.Value); Assert.AreEqual(savingsProduct.TransferMax.Value, loadedProduct.TransferMax.Value); Assert.AreEqual(savingsProduct.InterestRate, loadedProduct.InterestRate); Assert.AreEqual(savingsProduct.InterestRateMax, loadedProduct.InterestRateMax); Assert.AreEqual(savingsProduct.InterestRateMin, loadedProduct.InterestRateMin); Assert.AreEqual(OSavingInterestBase.Daily, loadedProduct.InterestBase); Assert.AreEqual(OSavingInterestFrequency.EndOfYear, loadedProduct.InterestFrequency); Assert.AreEqual(savingsProduct.EntryFees, loadedProduct.EntryFees); Assert.AreEqual(savingsProduct.EntryFeesMax.HasValue, loadedProduct.EntryFeesMax.HasValue); Assert.AreEqual(savingsProduct.EntryFeesMin.HasValue, loadedProduct.EntryFeesMin.HasValue); Assert.AreEqual(savingsProduct.WithdrawFeesType, loadedProduct.WithdrawFeesType); Assert.AreEqual(savingsProduct.FlatWithdrawFees.HasValue, loadedProduct.FlatWithdrawFees.HasValue); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMax.HasValue, loadedProduct.FlatWithdrawFeesMax.HasValue); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMin.HasValue, loadedProduct.FlatWithdrawFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateWithdrawFees, loadedProduct.RateWithdrawFees); Assert.AreEqual(savingsProduct.RateWithdrawFeesMax.HasValue, loadedProduct.RateWithdrawFeesMax.HasValue); Assert.AreEqual(savingsProduct.RateWithdrawFeesMin.HasValue, loadedProduct.RateWithdrawFeesMin.HasValue); Assert.AreEqual(savingsProduct.TransferFeesType, loadedProduct.TransferFeesType); Assert.AreEqual(savingsProduct.FlatTransferFees.HasValue, loadedProduct.FlatTransferFees.HasValue); Assert.AreEqual(savingsProduct.FlatTransferFeesMax.HasValue, loadedProduct.FlatTransferFeesMax.HasValue); Assert.AreEqual(savingsProduct.FlatTransferFeesMin.HasValue, loadedProduct.FlatTransferFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateTransferFees, loadedProduct.RateTransferFees); Assert.AreEqual(savingsProduct.RateTransferFeesMax.HasValue, loadedProduct.RateTransferFeesMax.HasValue); Assert.AreEqual(savingsProduct.RateTransferFeesMin.HasValue, loadedProduct.RateTransferFeesMin.HasValue); Assert.AreEqual(1, loadedProduct.Currency.Id); }
public List <Installment> CalculateInstallments(double totalValue, int numberOfYears, InstallmentType installmentType) { IInstallmentCalculator installmentCalculator; switch (installmentType) { case InstallmentType.Decreasing: installmentCalculator = new MortageDecreasingCalculator(); break; case InstallmentType.Equal: installmentCalculator = new MortageEqualCalculator(); break; default: installmentCalculator = new MortageEqualCalculator(); break; } return(installmentCalculator.CalculateInstallments(totalValue, numberOfYears)); }
protected IRepaymentScheduleGenerator Resolve(InstallmentType installmentType) => installmentType switch {
public void EditInstallmentType(InstallmentType pInstallmentType) { _installmentTypeManager.EditInstallmentType(pInstallmentType); }
public IEnumerable <RepaymentSchedule> Generate(RepaymentScheduleConfiguration config, InstallmentType installmentType) { var generator = Resolve(installmentType); generator.Config = config; return(generator.Generate()); }