示例#1
0
        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();
                }
        }
示例#4
0
        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();
                }
        }
示例#9
0
        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);
            }
        }
示例#11
0
        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));
        }
示例#12
0
        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);
 }
示例#17
0
 public DateTime GetNextMaturity(DateTime currentMaturityDate, InstallmentType periodicity)
 {
     return(DateCalculationStrategy.GetNextMaturity(currentMaturityDate, periodicity, 1));
 }
示例#18
0
 public void EditInstallmentType(InstallmentType pInstallmentType)
 {
     CheckExistingInstallmentType(pInstallmentType, editMode: true);
     _installmentTypeManager.EditInstallmentType(pInstallmentType);
 }
示例#19
0
 public int AddInstallmentType(InstallmentType pInstallmentType)
 {
     CheckExistingInstallmentType(pInstallmentType);
     return(_installmentTypeManager.AddInstallmentType(pInstallmentType));
 }
示例#20
0
 public IActionResult CalculateInstallments([FromQuery] double totalValue, [FromQuery] int numberOfYears, [FromQuery] InstallmentType installmentType)
 {
     return(Ok(Mapper.Map <IEnumerable <InstallmentViewModel> >(_installmentCalculatorResolver.CalculateInstallments(totalValue, numberOfYears, installmentType))));
 }
示例#21
0
 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;
                }
            }
        }
示例#23
0
 public void TestIfInstallmentTypeNameIsCorrectlySetAndRetrieved()
 {
     installmentType      = new InstallmentType();
     installmentType.Name = "Monthly";
     Assert.AreEqual("Monthly", installmentType.Name);
 }
示例#24
0
        public void TestNbOfMonthsEqualsToZeroWhenNoSpecifiedValue()
        {
            InstallmentType noMonths = new InstallmentType();

            Assert.AreEqual(0, noMonths.NbOfMonths);
        }
示例#25
0
        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);
        }
示例#26
0
        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);
        }
示例#27
0
        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
 {
示例#29
0
 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());
        }