public CrearCreditoResponse Ejecutar(CrearCreditoRequest request) { Empleado empleado = _unitOfWork.EmpleadoRepository.FindFirstOrDefault(x => x.Cedula == request.Cedula); if (empleado != null) { Credito credito = empleado.Creditos.Find(x => x.CodigoCredito == request.CodigoCredito); if (credito == null) { var errores = CreditoFactory.CanCrearCredito(request.Valor, request.TasaInteres, request.PlazoMeses); if (errores.Count == 0) { Credito creditoNuevo = CreditoFactory.CrearCredito(request.Valor, request.TasaInteres, request.PlazoMeses); creditoNuevo.CodigoCredito = request.CodigoCredito; empleado.Creditos.Add(creditoNuevo); _unitOfWork.EmpleadoRepository.Edit(empleado); // _unitOfWork.CreditoRepository.Add(creditoNuevo); _unitOfWork.Commit(); return(new CrearCreditoResponse() { Mensaje = $"Su credito {creditoNuevo.CodigoCredito} por valor de {creditoNuevo.Valor} se registro correctamente" }); } return(new CrearCreditoResponse() { Mensaje = string.Join("-", errores) }); } else { return(new CrearCreditoResponse() { Mensaje = $"ya existe un credito registrado con este numero {request.CodigoCredito}" }); } } else { return(new CrearCreditoResponse() { Mensaje = $"El empleado {request.Cedula} no existe" }); } }
public Response CrearCredito(CrearCreditoRequest request) { Empleado empleado = empleadoService.GetEmpleado(request.CedulaEmpleado); if (empleado == null) { return(new Response() { Mensaje = $"El número de cedula {request.CedulaEmpleado} no existe" }); } Credito credito = GetCredito(request.Numero); if (credito != null) { return(new Response() { Mensaje = $"El número de credito {request.Numero} ya existe" }); } var errores = CreditBuilder.CanCreateCredit(request.Valor, request.Plazo, request.TasaDeInteres); if (errores.Any()) { return(new Response() { Mensaje = String.Join(",", errores) }); } Credito credritoNuevo = CreditBuilder.CrearCredito(request.Valor, request.Plazo, request.TasaDeInteres); credritoNuevo.Numero = request.Numero; empleado.Creditos.Add(credritoNuevo); _unitOfWork.EmpleadoRepository.Edit(empleado); _unitOfWork.Commit(); return(new Response() { Mensaje = $"El valor a total para el crédito es ${credritoNuevo.ValorAPagar}" }); }
public CrearCreditoResponse Ejecutar(CrearCreditoRequest request) { Credito credito = _unitOfWork.CreditoRepository.FindFirstOrDefault(t => t.Cedula == request.Cedula); if (credito != null) { return new CrearCreditoResponse() { Mensaje = $"El numero de credito {request.Cedula} ya existe." } } ; try { Credito newCredit = _factory.CreateEntity(request.TipoCredito); newCredit.Cedula = request.Cedula; newCredit.Fecha = request.Fecha; newCredit.ValorPrestamo = request.ValorPrestamo; newCredit.PlazoPago = request.PlazoPago; newCredit.Salario = request.Salario; newCredit.Nombre = request.Nombre; _unitOfWork.CreditoRepository.Add(newCredit); newCredit.Validar(request.ValorPrestamo, request.PlazoPago); _unitOfWork.Commit(); return(new CrearCreditoResponse() { Mensaje = $"Se creó con exito el credito {newCredit.Cedula}." }); } catch (System.Exception ex) { return(new CrearCreditoResponse() { Mensaje = ex.Message }); } } }