Exemplo n.º 1
0
        public async Task <Client> CreateClient(ClientInput model)
        {
            try{
                var newClient = new Client {
                    Name      = model.Name,
                    Email     = model.Email,
                    Telephone = model.Telephone
                };
                await context.Clients.AddAsync(newClient);

                await context.SaveChangesAsync();
                await CreateExtraData(newClient);

                return(newClient);
            }catch (Exception error) {
                log.LogError("Ocorreu o seguinte erro ao cadastrar um novo cliente na base de dados:");
                log.LogError(error.Message);
                if (error.InnerException != null)
                {
                    log.LogError(error.InnerException.Message);
                }
                log.LogError(JsonConvert.SerializeObject(model));
                throw error;
            }
        }
Exemplo n.º 2
0
        public async Task <CobrancaResult> Process(string input)
        {
            try{
                var infoPagamento = JsonConvert.DeserializeObject <PagamentoValeCompraInput>(input);

                var valeCompra = await voucherService.ConsultarValeCompra(infoPagamento.CodigoValeCompras); //await context.Vouchers.FirstOrDefaultAsync(v=>v.Identifier == infoPagamento.CodigoValeCompras && v.ClientId == infoPagamento.CodigoCliente);

                if (string.IsNullOrEmpty(valeCompra.ErrMessage))
                {
                    return(new CobrancaResult {
                        Aprovado = false,
                        Erro = valeCompra.ErrMessage
                    });
                }
                else if (valeCompra.ClienteId != infoPagamento.CodigoCliente)
                {
                    return(new CobrancaResult {
                        Aprovado = false,
                        Erro = "Vale-compra não localizado"
                    });
                }
                else
                {
                    await voucherService.RegisterVoucherUse(infoPagamento.CodigoValeCompras);

                    var paymentType = await context.PaymentTypes.FirstOrDefaultAsync(pt => pt.TypeIdentifier.Equals(ProviderName));

                    var newPayment = new Payment {
                        OrderId   = infoPagamento.CodigoPedido,
                        Date      = DateTime.Now,
                        TypeId    = paymentType.Id,
                        Amount    = infoPagamento.ValorCompra,
                        ExtraInfo = infoPagamento.CodigoValeCompras
                    };
                    await context.AddAsync(newPayment);

                    await context.SaveChangesAsync();

                    return(new CobrancaResult {
                        Aprovado = true,
                        Data = DateTime.Now,
                        Valor = infoPagamento.ValorCompra
                    });
                }
            }catch (Exception error) {
                log.LogError("Ocorreu um erro ao tentar efetuar o pagamento de um pedido com um vale-compra");
                log.LogError(error.Message);
                if (error.InnerException != null)
                {
                    log.LogError(error.InnerException.Message);
                }
                log.LogError(input);
                throw error;
            }
        }
Exemplo n.º 3
0
        public async Task RegisterDiscountUse(string code)
        {
            try{
                var discount = await context.Discounts.FirstOrDefaultAsync(d => d.Identifier.Equals(code));

                discount.Utilized++;
                await context.SaveChangesAsync();
            }catch (Exception error) {
                log.LogError($"Ocorreu um erro ao registrar o uso do desconto de código: {code}");
                log.LogError(error.Message);
                if (error.InnerException != null)
                {
                    log.LogError(error.InnerException.Message);
                }
                throw error;
            }
        }
Exemplo n.º 4
0
        public async Task RegisterVoucherUse(string code)
        {
            try{
                var voucher = await context.Vouchers.FirstOrDefaultAsync(d => d.Identifier.Equals(code));

                voucher.Utilized = true;
                await context.SaveChangesAsync();
            }catch (Exception error) {
                log.LogError($"Ocorreu um erro ao registrar o uso do vale-compra de código: {code}");
                log.LogError(error.Message);
                if (error.InnerException != null)
                {
                    log.LogError(error.InnerException.Message);
                }
                throw error;
            }
        }