public override void OnException(ExceptionContext context)
        {
            if (!_hostingEnvironment.IsDevelopment())
            {
                return;
            }
            var logEntry = new Entities.LogEntryEntity()
            {
                TimeStamp        = DateTime.UtcNow,
                ActionDescriptor = context.ActionDescriptor.DisplayName,
                IpAddress        = context.HttpContext.Connection.RemoteIpAddress.ToString(),
                Message          = context.Exception.Message,
                RequestId        = Activity.Current?.Id ?? context.HttpContext.TraceIdentifier,
                RequestPath      = context.HttpContext.Request.Path,
                Source           = context.Exception.Source,
                StackTrace       = context.Exception.StackTrace,
                Type             = context.Exception.GetType().ToString(),
                User             = context.HttpContext.User.HasClaim(x => x.Type == CustomClaimTypes.Email.ToString()) ? context.HttpContext.User.Claims.FirstOrDefault(x => x.Type == CustomClaimTypes.Email.ToString()).Value : null
            };

            // save log in database
            _logEntryBL.CreataLogEntry(logEntry);

            // save log in file
            Logger.UserActionLoggin(JsonSerializeDeserializer.JsonString(logEntry), Serilog.Events.LogEventLevel.Error);
            var result = new ViewResult {
                ViewName = "CustomError"
            };

            result.ViewData = new ViewDataDictionary(_modelMetadataProvider,
                                                     context.ModelState);
            result.ViewData.Add("Exception", context.Exception);
            // TODO: Pass additional detailed data via ViewData
            context.Result = result;
        }
 public void OnActionExecuting(ActionExecutingContext context)
 {
     Logger.UserActionLoggin(JsonSerializeDeserializer.JsonString(new SeriLogEntryEntity()
     {
         QueryString      = context.HttpContext.Request.QueryString.Value,
         RequetForm       = context.HttpContext.Request.HasFormContentType ? string.Join(",", context.HttpContext.Request.Form.Select(x => "\"" + x.Key + "\"" + " : " + "\"" + x.Value + "\"")) :"",
         TimeStamp        = DateTime.UtcNow,
         ActionDescriptor = context.ActionDescriptor.DisplayName,
         IpAddress        = context.HttpContext.Connection.RemoteIpAddress.ToString(),
         //Message = context.Exception.Message,
         RequestId   = Activity.Current?.Id ?? context.HttpContext.TraceIdentifier,
         RequestPath = context.HttpContext.Request.Path,
         User        = context.HttpContext.User.HasClaim(x => x.Type == CustomClaimTypes.Email.ToString()) ? context.HttpContext.User.Claims.FirstOrDefault(x => x.Type == CustomClaimTypes.Email.ToString()).Value : null
     }), Serilog.Events.LogEventLevel.Information);
 }