private static ResultadoBaseResult TratarValidacaoException(ValidacaoException validacaoException)
        {
            if (!validacaoException.Errors.Any())
            {
                return(new ResultadoBaseResult(validacaoException.Message));
            }

            return(new ResultadoBaseResult(RespostaApi.Falha(validacaoException.Errors)));
        }
        public override void OnException(ExceptionContext context)
        {
            using (SentrySdk.Init(sentryDSN))
            {
                var internalIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList?.FirstOrDefault(c => c.AddressFamily == AddressFamily.InterNetwork).ToString();

                SentrySdk.AddBreadcrumb($"{Environment.MachineName ?? string.Empty} - {internalIP ?? string.Empty }", "Machine Identification");

                SentrySdk.CaptureException(context.Exception);
            }

            context.Result = context.Exception switch
            {
                NegocioException negocioException => new ResultadoBaseResult(context.Exception.Message, negocioException.StatusCode),
                ValidacaoException validacaoException => TratarValidacaoException(validacaoException),
                _ => new ResultadoBaseResult("Ocorreu um erro interno. Favor contatar o Suporte"),
            };

            base.OnException(context);
        }
        private void RetornarErro(ValidacaoException ex)
        {
            var error = JsonConvert.SerializeObject(new { Error = ex.Message, TipoErro = TipoErroEnum.ErroTratado, StackTrace = ex.StackTrace });

            this.Send(error);
        }
        private JsonResult RetornarErro(ValidacaoException ex)
        {
            var error = new { Error = ex.Message, TipoErro = TipoErroEnum.ErroTratado, StackTrace = ex.StackTrace };

            return(Json(error, JsonRequestBehavior.AllowGet));
        }