示例#1
0
        public ServiceResponse Create(ServicioMetodoPagoRequest request)
        {
            var metodoPago = Get(request);

            if (metodoPago != null)
            {
                return(new ServiceResponse
                {
                    Mensaje = "Metodo de pago ya existe",
                    Status = false
                });
            }
            var buildMetodoPago = BuilderFactories.ClienteMetodoDePago(request.Cliente_Id, request.Activo, request.Saldo, request.CreditCard.Type, request.CreditCard.CardNumber, request.CreditCard.SecurityNumber, request.CreditCard.OwnerName, request.CreditCard.ExpirationDate);

            metodoPago = _repository.Add(buildMetodoPago);

            if (_unitOfWork.Commit() == 1)
            {
                return(new ServiceResponse
                {
                    Id = metodoPago.Id,
                    Mensaje = "Metodo de pago creado con exito",
                    Status = true
                });
            }
            else
            {
                return(new ServiceResponse
                {
                    Mensaje = "Metodo no pudo crearse",
                    Status = false
                });
            }
        }
        public void EditFailsYSuccessTest()
        {
            var cliente = new ServicioClienteTest().ServicioCliente._repository.FindBy(x => x.Documento == "1063969856").FirstOrDefault();

            var metodoPago = new ServicioMetodoPagoRequest
            {
                Id         = 100,
                Cliente_Id = 1,
                Saldo      = 0,
                Activo     = true,
                Cliente    = null,
                CreditCard = new Domain.ValueObjects.CreditCard(Domain.Enum.CreditCardType.Mastercard, "5493725989475483", "000", "carlos", new DateTime(2019, 12, 12))
            };

            var response = servicioMetodoPago.Edit(metodoPago);

            Assert.AreEqual(response.Mensaje, "Metodo de pago no existe");

            metodoPago.Id = 1;

            response = servicioMetodoPago.Edit(metodoPago);
            Assert.AreEqual(response.Mensaje, "CLiente no existe");
            metodoPago.Cliente = cliente;

            response = servicioMetodoPago.Edit(metodoPago);
            Assert.AreEqual(response.Mensaje, "No tiene permiso para modificar su saldo, los datos no fueron modificados");
            metodoPago.Saldo = 10000;

            response = servicioMetodoPago.Edit(metodoPago);
            Assert.AreEqual(response.Mensaje, "Metodo de pago actualizado");
        }
示例#3
0
 public ClienteMetodoDePago Get(ServicioMetodoPagoRequest request)
 {
     if (request.Id > 0 && request.Cliente_Id == 0)
     {
         return(_repository.FindBy(x => x.Id == request.Id).FirstOrDefault());
     }
     if (request.Id > 0 && request.Cliente_Id != 0)
     {
         return(_repository.FindBy(x => x.Id == request.Id && request.Cliente_Id == x.Cliente_Id).FirstOrDefault());
     }
     if (null != request.CreditCard.CardNumber)
     {
         return(_repository.FindBy(x => x.CreditCard.CardNumber == request.CreditCard.CardNumber).FirstOrDefault());
     }
     return(null);
 }
        public void CreateSuccessTest()
        {
            servicioMetodoPago.Delete(servicioMetodoPago._repository.FindBy(x => x.CreditCard.CardNumber == "5106929458367416").FirstOrDefault());

            var metodoPago = new ServicioMetodoPagoRequest
            {
                Cliente_Id = 1,
                Saldo      = 10000,
                Activo     = true,
                Cliente    = new ServicioClienteTest().ServicioCliente._repository.FindBy().LastOrDefault(),
                CreditCard = new Domain.ValueObjects.CreditCard(Domain.Enum.CreditCardType.Mastercard, "5493725989475483", "000", "carlos", new DateTime(2019, 12, 12))
            };

            var response = servicioMetodoPago.Create(metodoPago);

            Assert.AreEqual(response.Mensaje, "Metodo de pago ya existe");

            metodoPago.CreditCard.CardNumber = "5106929458367416";

            response = servicioMetodoPago.Create(metodoPago);
            Assert.AreEqual(response.Mensaje, "Metodo de pago creado con exito");
        }
示例#5
0
        public ServiceResponse Edit(ServicioMetodoPagoRequest request)
        {
            var metodoPago = Get(new ServicioMetodoPagoRequest {
                Id = request.Id, Cliente_Id = request.Cliente_Id
            });

            metodoPago.Cliente = request.Cliente;


            if (metodoPago == null)
            {
                return(new ServiceResponse
                {
                    Mensaje = "Metodo de pago no existe",
                    Status = false
                });
            }

            if (metodoPago.Cliente == null)
            {
                return(new ServiceResponse
                {
                    Mensaje = "CLiente no existe",
                    Status = false
                });
            }

            if (metodoPago.Saldo > request.Saldo)
            {
                if (!metodoPago.DescontarSaldo(request.Saldo))
                {
                    throw new Exception("No tiene permiso para modificar su saldo, los datos no fueron modificados");
                }
            }

            if (metodoPago.Saldo < request.Saldo)
            {
                if (!metodoPago.AumentarSaldo(request.Saldo))
                {
                    throw new Exception("No tiene permiso para modificar su saldo, los datos no fueron modificados");
                }
            }

            metodoPago.Activo = request.Activo;

            if (metodoPago.CreditCard.CardNumber != request.CreditCard.CardNumber)
            {
                var m = Get(new ServicioMetodoPagoRequest {
                    CreditCard = request.CreditCard
                });
                if (m != null)
                {
                    return(new ServiceResponse
                    {
                        Mensaje = "Numero de tarjeta ya esta en uso",
                        Status = false
                    });
                }
                else
                {
                    metodoPago.CreditCard = request.CreditCard;
                }
            }

            metodoPago.Cliente = null;

            _repository.Edit(metodoPago);
            if (_unitOfWork.Commit() == 1)
            {
                return(new ServiceResponse
                {
                    Mensaje = "Metodo de pago actualizado",
                    Status = true
                });
            }
            else
            {
                return(new ServiceResponse
                {
                    Mensaje = "No se puedo modificar el metodo de pago",
                    Status = false
                });
            }
        }
示例#6
0
        public IEnumerable <ClienteMetodoDePago> GetAll(ServicioMetodoPagoRequest request)
        {
            var meotodo = _repository.FindBy(x => x.Cliente_Id == request.Cliente_Id);

            return(meotodo);
        }