Exemple #1
0
        public async Task <IActionResult> Criar(Gasto gasto)
        {
            var usuario = User.Identity.Name;

            try
            {
                if (!await ciclosDAL.ValidaUsuario(usuario, gasto.CicloId))
                {
                    throw new KeyNotFoundException("Ciclo não foi encontrado ou você não tem acesso a ele!");
                }

                if (!gasto.ValidarTipoEData())
                {
                    throw new KeyNotFoundException("Preencha as data de contabilização conforme o Tipo escolhido!");
                }

                await gastosDAL.Create(gasto);

                if (Uri.TryCreate("/gastos/" + gasto.Id, UriKind.Relative, out Uri result))
                {
                    return(Created(result, gasto));
                }

                return(Ok(gasto));
            }
            catch (KeyNotFoundException ex)
            {
                gravadorLog.GravarLogErro(ex, 400, $"Usuário: {usuario} - CicloId: {gasto.CicloId}");
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                gravadorLog.GravarLogErro(ex, 500);
                return(StatusCode(500));
            }
        }