예제 #1
0
 public CommonController(ChannelPartnerManagementContext context,
                         IHttpContextAccessor httpContextAccessor,
                         ChannelPartnerService channelPartnerService,
                         ChannelPartnerModelFactory channelPartnerModelFactory)
 {
     this._context                    = context;
     this._httpContextAccessor        = httpContextAccessor;
     this._channelPartnerService      = channelPartnerService;
     this._channelPartnerModelFactory = channelPartnerModelFactory;
 }
 public ChannelPartnerController(ChannelPartnerManagementContext channelPartnerManagementContext,
                                 ChannelPartnerModelFactory channelPartnerModelFactory,
                                 ChannelPartnerService channelPartnerService,
                                 IHttpContextAccessor httpContextAccessor)
 {
     this._channelPartnerManagementContext = channelPartnerManagementContext;
     this._channelPartnerModelFactory      = channelPartnerModelFactory;
     this._channelPartnerService           = channelPartnerService;
     this._httpContextAccessor             = httpContextAccessor;
 }
 public async Task Invoke(HttpContext context, LogsService logsService, ChannelPartnerManagementContext channelPartnerManagementContext)
 {
     try
     {
         await _next.Invoke(context);
     }
     catch (Exception ex)
     {
         await HandleExceptionAsync(context, ex, logsService, channelPartnerManagementContext);
     }
 }
 public ChannelPartnerService(
     FileService fileService,
     IConfiguration configuration,
     IWebHostEnvironment env,
     IHttpContextAccessor httpContextAccessor,
     ChannelPartnerManagementContext channelPartnerManagementContext,
     ClassBookManagementContext classBookManagementContext)
 {
     this._fileService                     = fileService;
     this._configuration                   = configuration;
     this._env                             = env;
     this._httpContextAccessor             = httpContextAccessor;
     this._channelPartnerManagementContext = channelPartnerManagementContext;
     this._classBookManagementContext      = classBookManagementContext;
 }
 public LogsService(ChannelPartnerManagementContext channelPartnerManagementContext)
 {
     this._channelPartnerManagementContext = channelPartnerManagementContext;
 }
 public ControllerFilterExample(ChannelPartnerManagementContext channelPartnerManagementContext)
 {
     this._channelPartnerManagementContext = channelPartnerManagementContext;
 }
        private Task HandleExceptionAsync(HttpContext httpContext, Exception exception, LogsService _logsService, ChannelPartnerManagementContext _channelPartnerManagementContext)
        {
            #region Add Logs

            var    endpoint       = httpContext.GetEndpoint();
            int    userId         = 0;
            string controllerName = string.Empty;
            if (endpoint != null)
            {
                StringValues secretKeyToken;
                httpContext.Request.Headers.TryGetValue("AuthorizeTokenKey", out secretKeyToken).ToString();
                var authorizationTokenKey = secretKeyToken.ToString();
                var singleUser            = _channelPartnerManagementContext.Users.Where(x => x.AuthorizeTokenKey == authorizationTokenKey).AsNoTracking();
                if (singleUser.Any())
                {
                    userId = singleUser.FirstOrDefault().Id;
                }
                var controllerActionDescriptor = endpoint.Metadata.GetMetadata <ControllerActionDescriptor>();
                if (controllerActionDescriptor != null)
                {
                    controllerName = controllerActionDescriptor.ControllerName;
                }
            }
            _logsService.InsertLogs(controllerName, exception, httpContext.Request.Path.Value, userId);

            #endregion

            #region Exception Response

            httpContext.Response.ContentType = "application/json";
            httpContext.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;
            return(httpContext.Response.WriteAsync(new ErrorDetails()
            {
                StatusCode = httpContext.Response.StatusCode,
                Message = exception?.Message
            }.ToString()));

            #endregion
        }