예제 #1
0
        public void CreateSalePutRequest()
        {
            var objeto = new SalePutRequest()
            {
                Codigo = 123, Valor = 123, DataCompra = DateTime.Now
            };

            Assert.NotNull(objeto);
        }
예제 #2
0
        public void PutSalesErrorStatusTest()
        {
            SalePutRequest salePutRequest = new SalePutRequest()
            {
                Codigo = 20, DataCompra = DateTime.Now, Valor = 1000
            };
            var resultado = saleService.PutSales(idsucess1, idsucessSales, salePutRequest);

            Assert.False(resultado.Sucess);
        }
예제 #3
0
        public IActionResult PutSale(string code, [FromBody] SalePutRequest request)
        {
            var id     = HttpContext.User.Claims.Where(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name")).FirstOrDefault().Value;
            var result = _saleService.PutSales(id, code, request);

            if (result.Sucess)
            {
                return(new ObjectResult(result));
            }
            else
            {
                var resultError = new ObjectResult(result);
                resultError.StatusCode = result.Error.FirstOrDefault().Code;
                return(resultError);
            }
        }
예제 #4
0
 public SaleResponse PutSales(string id, string idSales, SalePutRequest salePutRequest)
 {
     _logger.LogInformation("PutSales: Start");
     try
     {
         _logger.LogInformation("PutSales: buscar Id");
         var vendor = _salesRepository.GetVendorId(id);
         _logger.LogInformation("PutSales: Verifica Existencia de vendas");
         if (vendor.Sales == null)
         {
             return new SaleResponse()
                    {
                        Sucess = false, Error = new List <Error>()
                        {
                            new Error()
                            {
                                Code = 400, Descricao = "Venda não encontrada."
                            }
                        }
                    }
         }
         ;
         _logger.LogInformation("PutSales: Verifica Existencia de vendas do Id informado");
         var sale = vendor.Sales.Where(x => x._id.ToString().Equals(idSales)).FirstOrDefault();
         if (sale == null)
         {
             return new SaleResponse()
                    {
                        Sucess = false, Error = new List <Error>()
                        {
                            new Error()
                            {
                                Code = 400, Descricao = "Venda não encontrada."
                            }
                        }
                    }
         }
         ;
         _logger.LogInformation("PutSales: Validação Status");
         if (sale.Status.Equals("Aprovado"))
         {
             return new SaleResponse()
                    {
                        Sucess = false, Error = new List <Error>()
                        {
                            new Error()
                            {
                                Code = 400, Descricao = "Não pode ser editado."
                            }
                        }
                    }
         }
         ;
         if (salePutRequest.DataCompra != null)
         {
             sale.Data = salePutRequest.DataCompra.Value;
         }
         if (salePutRequest.Codigo != null)
         {
             sale.Codigo = salePutRequest.Codigo.Value;
         }
         if (salePutRequest.Valor != null)
         {
             sale.Valor = salePutRequest.Valor.Value;
             _logger.LogInformation("PutSales: Executa calculos de Cashback");
             var cashback = this.CashBackCalc(sale.Valor);
             sale.CashBackPer   = cashback.Item1;
             sale.CashBackValor = cashback.Item2;
         }
         _logger.LogInformation("PutSales: Gravar venda");
         _salesRepository.PutVendor(vendor);
         return(new SaleResponse(sale._id.ToString()));
     }
     catch (Exception ex)
     {
         _logger.LogInformation("PutSales:error - {0}", ex);
         return(new SaleResponse()
         {
             Sucess = false, Error = new List <Error>()
             {
                 new Error()
                 {
                     Code = 500, Descricao = "Ocorreu um erro interno favor tentar novamente mais tarde"
                 }
             }
         });
     }
 }