示例#1
0
        public async Task <IActionResult> GetByKey(Guid key)
        {
            try
            {
                using (var db = new FortesContext())
                {
                    var item = await db.Compra
                               .Where(x => x.UsuarioKey.ToString() == HttpContext.User.Identity.Name)
                               .Where(x => x.CompraKey == key)
                               .FirstOrDefaultAsync();

                    if (item == null)
                    {
                        return(NotFound(new
                        {
                            Codigo = NotFound().StatusCode,
                            Mensagem = "Nenhum registro encontrado.",
                        }));
                    }

                    return(Ok(item));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    Codigo = 500,
                    Mensagem = ex.InnerException?.InnerException?.Message ?? ex.Message,
                }));
            }
        }
示例#2
0
        public async Task <IActionResult> Update(Guid key, [FromBody] Compra compra)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new
                    {
                        Codigo = BadRequest().StatusCode,
                        Mensagem = "Erro na validação da solicitação.",
                        Itens = ModelState.SelectMany(x => x.Value.Errors)
                                .Select(x => x.ErrorMessage)
                                .ToList()
                    }));
                }

                using (var db = new FortesContext())
                {
                    var item = await db.Compra
                               .Where(x => x.UsuarioKey.ToString() == HttpContext.User.Identity.Name)
                               .Where(x => x.CompraKey == key)
                               .FirstOrDefaultAsync();

                    if (item == null)
                    {
                        return(NotFound(new
                        {
                            Codigo = NotFound().StatusCode,
                            Mensagem = "Nenhum registro encontrado.",
                        }));
                    }

                    item.Descricao          = compra.Descricao;
                    item.Valor              = compra.Valor;
                    item.TaxaJuros          = compra.TaxaJuros;
                    item.ValorTotal         = compra.ValorTotal;
                    item.QuantidadeParcelas = compra.QuantidadeParcelas;
                    item.DataCompra         = compra.DataCompra ?? item.DataCompra;

                    db.Update(item);
                    await db.SaveChangesAsync();

                    return(Ok(new
                    {
                        Codigo = Ok().StatusCode,
                        Mensagem = "Registro atualizado com sucesso!",
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    Codigo = 500,
                    Mensagem = ex.InnerException?.InnerException?.Message ?? ex.Message,
                }));
            }
        }
示例#3
0
        public async Task <IActionResult> Post([FromBody] Compra compra)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new
                    {
                        Codigo = BadRequest().StatusCode,
                        Mensagem = "Erro na validação da solicitação.",
                        Itens = ModelState.SelectMany(x => x.Value.Errors)
                                .Select(x => x.ErrorMessage)
                                .ToList()
                    }));
                }

                compra.DataCompra = compra.DataCompra ?? DateTime.Now;
                compra.UsuarioKey = Guid.Parse(HttpContext.User.Identity.Name);

                using (var db = new FortesContext())
                {
                    await db.Compra.AddAsync(compra);

                    await db.SaveChangesAsync();

                    //OK
                    return(Created("", new
                    {
                        Codigo = 201,
                        Mensagem = "Registro criado com sucesso!",
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    Codigo = 500,
                    Mensagem = ex.InnerException?.InnerException?.Message ?? ex.Message,
                    ex
                }));
            }
        }
示例#4
0
        public async Task <IActionResult> Post([FromBody] Usuario usuario)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new
                    {
                        Codigo = BadRequest().StatusCode,
                        Mensagem = "Erro na validação da solicitação.",
                        Itens = ModelState.SelectMany(x => x.Value.Errors)
                                .Select(x => x.ErrorMessage)
                                .ToList()
                    }));
                }

                using (var db = new FortesContext())
                {
                    await db.Usuario.AddAsync(usuario);

                    await db.SaveChangesAsync();

                    //OK
                    return(Created("", new
                    {
                        Codigo = 201,
                        Mensagem = "Registro criado com sucesso!",
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    Codigo = 500,
                    Mensagem = ex.InnerException?.InnerException?.Message ?? ex.Message,
                }));
            }
        }