Exemple #1
0
        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);
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
        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));
            }
        }