Beispiel #1
0
        public void WithAllFieldsBeingTheirDefaultStateShouldValid()
        {
            // Assign
            var model = new ProbabilityViewModel();

            // Act
            var results = ModelValidator.Validate(model).ToList();

            // Assert
            results.Should().BeEmpty();
        }
Beispiel #2
0
        internal ProbabilityCalculationControllerSutBuilder VerifyLogWasCalledCorrectly(
            ProbabilityCalculationRequestViewModel request,
            ProbabilityViewModel result)
        {
            this.mockLogWriter.Verify(x => x.AppendLinesToLogFileAsync(It.IsAny <string>()), Times.Once);

            var probabilities  = string.Join(",", request.Probabilities.Select(x => x.Rate));
            var expectedLogMsg = $"{this.stubbedNow}: Probability of {request.Type} with {probabilities} returned a result of {result.Rate}";

            this.mockLogWriter.Verify(x => x.AppendLinesToLogFileAsync(expectedLogMsg), Times.Once);
            return(this);
        }
Beispiel #3
0
        public void WithAllFieldsBeingSetToTheMaximumValidValuesShouldBeValid()
        {
            // Assign
            var model = new ProbabilityViewModel
            {
                Rate = 1,
            };

            // Act
            var results = ModelValidator.Validate(model).ToList();

            // Assert
            results.Should().BeEmpty();
        }
Beispiel #4
0
        public void WithAllFieldsBeingSetToTheMaximumInvalidValuesShouldBeInvalid()
        {
            // Assign
            var model = new ProbabilityViewModel
            {
                Rate = 1.0001,
            };

            var expectedResult = new List <string>
            {
                "Probability must be between 0 and 1",
            };

            // Act
            var results = ModelValidator.Validate(model).ToList();

            // Assert
            results.Should().BeEquivalentTo(expectedResult);
        }
        public async Task AndTheRequestsIsValidShouldReturnTheCorrectResult(
            ProbabilityCalculationRequestViewModel stubbedRequest,
            ProbabilityViewModel expectedResult)
        {
            // Assign
            var sut = this.builder
                      .WithStubbedNow(this.now)
                      .Build();

            // Act
            var result = await sut.Post(stubbedRequest);

            // Assert
            var actionResult = Assert.IsAssignableFrom <ActionResult <ProbabilityViewModel> >(result);
            var viewResult   = Assert.IsAssignableFrom <OkObjectResult>(actionResult.Result);
            var viewModel    = Assert.IsAssignableFrom <ProbabilityViewModel>(viewResult.Value);

            viewModel.Should().BeEquivalentTo(expectedResult);
            this.builder.VerifyLogWasCalledCorrectly(stubbedRequest, expectedResult);
        }
Beispiel #6
0
        public List <RequestViewModel> validateDataRequests(List <String> lsData, string separator)
        {
            String sline     = "--------------------------------------------------------------------------";
            var    lsRequest = new List <RequestViewModel>();
            int    cont      = 1;

            try
            {
                using (BDRAEntities db = new BDRAEntities())
                {
                    foreach (var data in lsData)
                    {
                        Console.WriteLine(sline);
                        try
                        {
                            if (cont == 1)
                            {
                                cont += 1;
                                continue;
                            }
                            Console.WriteLine("Registro #: " + cont);

                            var aData = data.Split(separator);

                            ClientViewModel oClient         = new ClientViewModel();
                            string          sClientDocument = aData[(int)atrRequest.NIT].ToString().Trim();
                            oClient = db.Client.Where(cl => cl.cli_document == sClientDocument)
                                      .Select(cl => new ClientViewModel {
                                id = cl.cli_document, name = cl.cli_name
                            })
                                      .FirstOrDefault();

                            if (oClient == null)
                            {
                                throw new Exception("El cliente no existe en la base de datos.");
                            }

                            UserViewModel oManagerAccount  = new UserViewModel();
                            string        sNameAndLastName = aData[(int)atrRequest.User].ToString().Trim();
                            oManagerAccount = db.users.Where(us => (us.usu_name + " " + us.usu_lastName).Contains(sNameAndLastName))
                                              .Select(us => new UserViewModel {
                                id = us.usu_document
                            })
                                              .FirstOrDefault();

                            if (oManagerAccount == null)
                            {
                                throw new Exception("El gerente de cuenta no se encuentra en la base de datos");
                            }


                            ContactViewModel oContactBank = new ContactViewModel();
                            string           sNameAndLastNameContactBank = aData[(int)atrRequest.ContactBank].ToString().Trim();

                            oContactBank = db.Contact.Where(cnt => cnt.bra_id == 1 && (cnt.cnt_name + " " + cnt.cnt_lastName).Contains(sNameAndLastNameContactBank))
                                           .Select(cnt => new ContactViewModel {
                                id = cnt.cnt_id, name = cnt.cnt_name, lastName = cnt.cnt_lastName
                            })
                                           .FirstOrDefault();

                            if (oContactBank == null)
                            {
                                Contact cntBnk = new Contact();
                                cntBnk.bra_id = 1;

                                var aNameLastName = divideNameAndLastName(sNameAndLastNameContactBank);
                                cntBnk.cnt_name             = aNameLastName[0];
                                cntBnk.cnt_lastName         = aNameLastName[1];
                                cntBnk.jtcl_id              = 1031;
                                cntBnk.cnt_costCenter       = "";
                                cntBnk.cnt_registrationDate = DateTime.Now;

                                db.Contact.Add(cntBnk);
                                db.SaveChanges();


                                oContactBank = db.Contact.Where(cnt => cnt.bra_id == 1 && (cnt.cnt_name + " " + cnt.cnt_lastName).Contains(sNameAndLastNameContactBank))
                                               .Select(cnt => new ContactViewModel {
                                    id = cnt.cnt_id, name = cnt.cnt_name, lastName = cnt.cnt_lastName
                                })
                                               .FirstOrDefault();
                            }


                            DateTime dFisrtVisit    = DateTime.Parse(aData[(int)atrRequest.FirstVisit].ToString().Trim());
                            string   sDateLastVisit = aData[(int)atrRequest.LastVisit].ToString().Trim();
                            DateTime dLastVisit     = new DateTime();
                            if (sDateLastVisit != "")
                            {
                                dLastVisit = DateTime.Parse(sDateLastVisit);
                            }

                            string         sFirstState = aData[(int)atrRequest.FirstState].ToString().Trim();
                            StateViewModel oFirstState = new StateViewModel();

                            oFirstState = db.states.Where(st => st.sta_description == sFirstState)
                                          .Select(st => new StateViewModel {
                                id = st.sta_id, description = st.sta_description
                            })
                                          .FirstOrDefault();

                            if (oFirstState == null)
                            {
                                throw new Exception("No se encuentra el estado principal en la base de datos");
                            }

                            string sTirdState = aData[(int)atrRequest.TirdState].ToString().Trim();

                            string sSecondState = "";
                            if (sTirdState != "")
                            {
                                sSecondState = sTirdState;
                            }
                            else
                            {
                                sSecondState = aData[(int)atrRequest.SecondState].ToString().Trim();
                            }

                            StateViewModel oSecondState = new StateViewModel();
                            oSecondState = db.states.Where(st => st.sta_description.Contains(sSecondState))
                                           .Select(st => new StateViewModel {
                                id = st.sta_id, description = st.sta_description
                            })
                                           .FirstOrDefault();

                            if (oSecondState == null)
                            {
                                throw new Exception("No se encuentra el estado secundario en la base de datos");
                            }


                            string sProbability = aData[(int)atrRequest.Probability].ToString().Trim();
                            ProbabilityViewModel oProbability = new ProbabilityViewModel();
                            oProbability = db.probability.Where(pb => pb.prb_description.ToUpper() == sProbability.ToUpper())
                                           .Select(pb => new ProbabilityViewModel {
                                id = pb.prb_id, description = pb.prb_description
                            })
                                           .FirstOrDefault();

                            if (oProbability == null)
                            {
                                throw new Exception("No se encuentra la probabilidad en la base de datos");
                            }

                            string         sRiskState = aData[(int)atrRequest.RiskState].ToString().Trim();
                            StateViewModel oRiskState = new StateViewModel();

                            if (sRiskState != "")
                            {
                                oRiskState = db.states.Where(st => st.stGrp_id == 2 && st.sta_description.ToUpper() == sRiskState)
                                             .Select(st => new StateViewModel {
                                    id = st.sta_id, description = st.sta_description
                                })
                                             .FirstOrDefault();
                            }

                            string sAmmountApproved = aData[(int)atrRequest.ApprovedAmount].ToString().Trim();

                            string sRadicationDate = aData[(int)atrRequest.RiskRadication].ToString().Trim();

                            RiskInformationViewModel rkInf = new RiskInformationViewModel();
                            rkInf.riskState = oRiskState;
                            if (sAmmountApproved == "")
                            {
                                sAmmountApproved = "0";
                            }

                            rkInf.ammountApproved        = long.Parse(sAmmountApproved);
                            rkInf.dateSubmissionAnalysis = null;
                            string sUserUpdateRisk = aData[(int)atrRequest.UserUpdateRisk].ToString().Trim();


                            DateTime dRegistrationDate = DateTime.Parse(aData[(int)atrRequest.CreationDate].ToString());


                            Console.WriteLine("Cliente: " + oClient.name);
                            Console.WriteLine("Gerente de cuenta: " + oManagerAccount.id);
                            Console.WriteLine("Gerente del banco: " + oContactBank.id);
                            Console.WriteLine("Fecha primer visita: " + dFisrtVisit);
                            Console.WriteLine("Fecha de la segunda visita: " + dLastVisit);
                            Console.WriteLine("Estado principal: " + oFirstState.id);
                            Console.WriteLine("Estado secundario: " + oSecondState.id);
                            Console.WriteLine("Probabilidad: " + oProbability.id);
                            Console.WriteLine("Fecha de registro: " + dRegistrationDate);
                            Console.WriteLine("########################################");
                            Console.WriteLine("Información de Riesgos");
                            Console.WriteLine("########################################");
                            Console.WriteLine("Estado de riesgo: " + rkInf.riskState.description);
                            Console.WriteLine("Fecha de radicación riesgo: " + rkInf.dateSubmissionAnalysis);
                            Console.WriteLine("Monto Aprobado: " + rkInf.ammountApproved);
                            Console.WriteLine("Usuario Actualización: ");
                            Console.WriteLine("########################################");
                            Console.WriteLine("Información de Operaciones");
                            Console.WriteLine("########################################");

                            RequestViewModel rqt = new RequestViewModel();
                            rqt.client                    = oClient;
                            rqt.user                      = oManagerAccount;
                            rqt.contact                   = oContactBank;
                            rqt.initialDate               = dFisrtVisit;
                            rqt.lastDate                  = dLastVisit;
                            rqt.parentState               = oFirstState;
                            rqt.childState                = oSecondState;
                            rqt.probability               = oProbability;
                            rqt.registrationDate          = dRegistrationDate;
                            rqt.riskInformation           = new RiskInformationViewModel();
                            rqt.riskInformation.riskState = oRiskState;

                            lsRequest.Add(rqt);
                            cont += 1;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                            cont += 1;
                            continue;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Problemas de ejecución en la base de datos");
                Console.WriteLine(ex.Message);
            }
            return(lsRequest);
        }