private Transaccion NewTransaccion(TransaccionDtoIn transaccionDto) { var transaccion = mapper.Map <Transaccion>(transaccionDto); var productoOrigen = masterRepository.Producto.FindByCondition(p => p.ProductoId == transaccionDto.ProductoOrigenId).First(); var productoDestino = masterRepository.Producto.FindByCondition(p => p.ProductoId == transaccionDto.ProductoDestinoId).First(); ValidarTiposProductos(productoOrigen, productoDestino); //transaccion.ProductoOrigen = productoOrigen; //transaccion.ProductoDestino = productoDestino; transaccion.FechaTransaccion = DateTime.Now; transaccion.Estado = EstadoTransaccion.Pendiente; transaccion.Descripcion = GetDescripcion(productoOrigen, productoDestino); transaccion.RowUid = Guid.NewGuid(); Random random = new Random(); int numeroClave = random.Next(1, 10); int clienteId = productoOrigen.TitularId; var tarjetaClave = masterRepository.TarjetaClave.FindByCondition(t => t.ClienteId == clienteId && t.NumeroClave == numeroClave).FirstOrDefault(); transaccion.TarjetaClaveId = tarjetaClave.TarjetaClaveId; //transaccion.TarjetaClave = tarjetaClave; return(transaccion); }
public IActionResult CreateTransaccion(TransaccionDtoIn transaccionDto) { var result = transaccionService.CreateTransaction(transaccionDto); if (result.Code == ResponseCode.Ok) { return(Ok(result)); } else if (result.Code == ResponseCode.Warning) { return(BadRequest(result)); } else { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public ServiceResult <TransaccionResponseDtoOut> CreateTransaction(TransaccionDtoIn transaccionDto) { try { if (!productoValidationService.IsExistingProductoId(transaccionDto.ProductoOrigenId)) { throw new ValidationException(TransaccionMessageConstants.NotExistingProductoOrigenId); } if (!productoValidationService.IsExistingProductoId(transaccionDto.ProductoDestinoId)) { throw new ValidationException(TransaccionMessageConstants.NotExistingProductoDestinoId); } if (transaccionDto.Monto <= 0) { throw new ValidationException(TransaccionMessageConstants.WrongMonto); } var transaccion = NewTransaccion(transaccionDto); var numeroClave = masterRepository.TarjetaClave.FindByCondition(t => t.TarjetaClaveId == transaccion.TarjetaClaveId).First().NumeroClave; var transaccionResponseDto = new TransaccionResponseDtoOut() { RowUiDTransaccion = transaccion.RowUid, NumeroClave = numeroClave }; masterRepository.Transaccion.Create(transaccion); masterRepository.Save(); return(ServiceResult <TransaccionResponseDtoOut> .ResultOk(transaccionResponseDto)); } catch (ValidationException e) { return(ServiceResult <TransaccionResponseDtoOut> .ResultFailed(ResponseCode.Warning, e.Message)); } catch (Exception e) { return(ServiceResult <TransaccionResponseDtoOut> .ResultFailed(ResponseCode.Error, e.Message)); } }