示例#1
0
        public void Then_if_the_quote_has_an_error_the_error_is_displayed()
        {
            _quote.SetErrorMessage("something wrong");

            Execute();

            _result[0].ShouldEqual("something wrong");

            _result.Count.ShouldEqual(1);
        }
示例#2
0
        public override void HandleRequest(QuoteModel quote)
        {
            if (!_fileReader.DoesFileExist(quote.InputModel.FileName))
            {
                quote.SetErrorMessage(FILE_DOES_NOT_EXIST);
                return;
            }

            TextReader reader = TextReader.Null;

            try
            {
                reader = _fileReader.GetTextReader(quote.InputModel.FileName);
                quote.SetLoanProviders(_fileReader.ReadLoanProviders(reader));
                if (quote.LoanProviders.Count == 0)
                {
                    quote.SetErrorMessage(WRONG_FORMAT_OR_EMPTY);
                    return;
                }
            }
            catch (Exception e)
            {
                quote.SetErrorMessage($"{EXCEPTION_HAPPENED} {e.Message}");
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                }
            }

            if (quote.ValidationResult.IsValid)
            {
                successor.HandleRequest(quote);
            }
        }
示例#3
0
        public override void HandleRequest(QuoteModel quote)
        {
            if (quote.Args.Length != 2)
            {
                quote.SetErrorMessage(INVALID_PARAMETERS);
                return;
            }

            SetFileName(quote);
            if (string.IsNullOrEmpty(quote.InputModel.FileName))
            {
                quote.SetErrorMessage(INVALID_CSV);
                return;
            }

            SetAmount(quote);
            if (quote.InputModel.LoanAmount == 0)
            {
                quote.SetErrorMessage(INVALID_LOAN_AMOUNT);
                return;
            }

            successor.HandleRequest(quote);
        }
示例#4
0
        public override void HandleRequest(QuoteModel quote)
        {
            quote.SetMinimumAvailableRate(quote.LoanProviders
                                          .Where(r => r.Available >= quote.InputModel.LoanAmount)
                                          .OrderBy(r => r.Rate)
                                          .Select(r => r.Rate)
                                          .FirstOrDefault());

            if (quote.MinimumLendingRateAvailable == 0)
            {
                quote.SetErrorMessage(NO_RATE_AVAILABLE);
                return;
            }

            successor.HandleRequest(quote);
        }