Exemplo n.º 1
0
        /// <summary>
        /// Con esta capacidad puedes solicitar un prestamo
        /// </summary>
        /// <returns></returns>
        public int SolicitarPrestamo(SolicitarPrestamoInputType solicitarPrestamoInputType)
        {
            var calcularTopePrestamos = CalcularDisponibilidadPrestamo(solicitarPrestamoInputType.ClienteId, solicitarPrestamoInputType.Tasa);

            if (calcularTopePrestamos < solicitarPrestamoInputType.Cantidad)
            {
                throw new  ApplicationException("Cantidad excede la disponibilidad de prestamos que tiene con nosotros, su disponibilidad de prestamos es de : " + calcularTopePrestamos + " pesos");
            }

            if (calcularTopePrestamos == solicitarPrestamoInputType.Cantidad)
            {
                return(RegistrarPrestamo(new PrestamoType
                {
                    CantidadPrestada = solicitarPrestamoInputType.Cantidad,
                    Estado = "AC",
                    FechaPrestamo = DateTime.Now,
                    TasaInteres = solicitarPrestamoInputType.Tasa,
                    ClienteId = solicitarPrestamoInputType.ClienteId
                }));
            }

            if (calcularTopePrestamos > solicitarPrestamoInputType.Cantidad)
            {
                if (solicitarPrestamoInputType.DeseaTotalDisponiblilidad)
                {
                    return(RegistrarPrestamo(new PrestamoType
                    {
                        CantidadPrestada = calcularTopePrestamos,
                        Estado = "AC",
                        FechaPrestamo = DateTime.Now,
                        TasaInteres = solicitarPrestamoInputType.Tasa,
                        ClienteId = solicitarPrestamoInputType.ClienteId
                    }));
                }

                if (solicitarPrestamoInputType.DeseaCantidadSolicitada)
                {
                    return(RegistrarPrestamo(new PrestamoType
                    {
                        CantidadPrestada = solicitarPrestamoInputType.Cantidad,
                        Estado = "AC",
                        FechaPrestamo = DateTime.Now,
                        TasaInteres = solicitarPrestamoInputType.Tasa,
                        ClienteId = solicitarPrestamoInputType.ClienteId
                    }));
                }

                throw new ApplicationException("Esta seguro que desea tomar esta cantidad o prefiere tomar mas, su cantidad limite de prestamos es :" + calcularTopePrestamos + " pesos");
            }

            throw new Exception("Error interno del servicio de persistir favor llamar al administrados");
        }
Exemplo n.º 2
0
        public HttpResponseMessage Post([FromBody] SolicitarPrestamoInputType solicitarPrestamoInput)
        {
            try
            {
                var obj = _prestamoService.SolicitarPrestamo(solicitarPrestamoInput);

                return(Request.CreateResponse(HttpStatusCode.OK, obj));
            }
            catch (ApplicationException ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }