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"); }
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"); }
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 }); } }
public IEnumerable <ClienteMetodoDePago> GetAll(ServicioMetodoPagoRequest request) { var meotodo = _repository.FindBy(x => x.Cliente_Id == request.Cliente_Id); return(meotodo); }