Esempio n. 1
0
        /// <summary>
        /// Constructor of Loan Class which sets CSVFileName, CSVDelimiter, LoanAmount, PaymentPeriod and NumberOfPeriods.
        /// </summary>
        /// <param name="csvFileName">Contains list of lenders in CSV format - (Name, Rate, Avaiable).</param>
        /// <param name="loanAmount">The demanding amount by borrower.</param>
        /// <param name="paymentPeriod">Period in months when the borrowed money is returned. Default is 36 months.</param>
        /// <param name="numberOfPeriods">Monthly Compound Interest Rate Period in months. Default is 12 month (anually).</param>
        /// <param name="csvDelimiterChar">Delimeter for the CSV file to be parsed. Default charater is comma ','.</param>
        public LoanCalculator(string csvFileName, long loanAmount, int paymentPeriod = 36, int numberOfPeriods = 12, long minimumLimitOfLoanAmount = 1000, long maximumLimitOfLoanAmount = 15000, char csvDelimiterChar = ',')
        {
            fileValidationStatus = csvFileName.ValidateFileName();
            if (fileValidationStatus == FileValidationStatus.Validated)
            {
                CSVFileName = csvFileName;
            }
            else
            {
                throw new Exception(fileValidationStatus.ToString() + " - Check whether the file exists or the filename is correct");
            }

            loanAmountValidationStatus = loanAmount.ValidateLoanAmount(minimumLimitOfLoanAmount, maximumLimitOfLoanAmount);
            if (loanAmountValidationStatus == LoanAmountValidationStatus.Validated)
            {
                LoanAmount = loanAmount;
            }
            else
            {
                throw new Exception(loanAmountValidationStatus.ToString());
            }

            CSVDelimiterChar = csvDelimiterChar;
            MinimumLimitOfLoanAmount = minimumLimitOfLoanAmount;
            MaximumLimitOfLoanAmount = maximumLimitOfLoanAmount;
            PaymentPeriod = paymentPeriod;
            NumberOfPeriods = numberOfPeriods;
            LendersPool = new List<Lender>();
            ParticipatingLendersList = new List<ParticipatingLender>();
        }
Esempio n. 2
0
 /// <summary>
 /// Constructor to create triangle of claims.
 /// </summary>
 /// <param name="csvFileName">CSV file name which has claims data</param>
 /// <param name="csvDelimiterChar">csv delimiter. Default is ','.</param>
 public TriangleOfClaims(string csvFileName, char csvDelimiterChar = ',')
 {
     //Validating file name and location
     fileValidationStatus = csvFileName.ValidateFileName();
     if (fileValidationStatus == FileValidationStatus.Validated)
     {
         CSVFileName      = csvFileName;
         CSVDelimiterChar = csvDelimiterChar;
     }
     else
     {
         throw new Exception(fileValidationStatus.ToString() + " - Check whether the file exists or the filename is correct");
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Constructor to create triangle of claims.
 /// </summary>
 /// <param name="csvFileName">CSV file name which has claims data</param>
 /// <param name="csvDelimiterChar">csv delimiter. Default is ','.</param>
 public TriangleOfClaims(string csvFileName, char csvDelimiterChar = ',')
 {
     //Validating file name and location
     fileValidationStatus = csvFileName.ValidateFileName();
     if (fileValidationStatus == FileValidationStatus.Validated)
     {
         CSVFileName = csvFileName;
         CSVDelimiterChar = csvDelimiterChar;
     }
     else
     {
         throw new Exception(fileValidationStatus.ToString() + " - Check whether the file exists or the filename is correct");
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Valdates the file given filename
        /// </summary>
        /// <param name="fileName">Input file as CSV</param>
        /// <returns></returns>
        public static FileValidationStatus ValidateFileName(this string fileName)
        {
            FileValidationStatus fileValidationStatus = FileValidationStatus.Validated;

            //Check if the file extension of the filename is csv
            if (System.IO.Path.GetExtension(fileName).ToLower() != ".csv")
            {
                fileValidationStatus = FileValidationStatus.CSVFileExtension_Error;
                return(fileValidationStatus);
            }

            //Check if the file Exists
            if (!System.IO.File.Exists(fileName))
            {
                fileValidationStatus = FileValidationStatus.CSVFileDoesNotExist_Error;
                return(fileValidationStatus);
            }

            return(fileValidationStatus);
        }