コード例 #1
0
        private Task HandleExceptionAsync(HttpContext context, Exception exception, APILogRequest apiLogRequest, IAPIErrorLogService _APIErrorLogService, IMapper _mapper)
        {
            HttpStatusCode statusCode = (exception as WebException != null &&
                                         ((HttpWebResponse)(exception as WebException).Response) != null) ?
                                        ((HttpWebResponse)(exception as WebException).Response).StatusCode
                         : GetErrorCodes.GetErrorCode(exception.GetType());

            context.Response.StatusCode  = (int)statusCode;
            context.Response.ContentType = "application/json";

            switch (AppSettingConfigurations.AppSettings.ErrorLoggingType.ToLower())
            {
            case "both":
            {
                LogExceptionInDB(exception, apiLogRequest, _APIErrorLogService, _mapper);
                break;
            }

            case "db":
            {
                LogExceptionInDB(exception, apiLogRequest, _APIErrorLogService, _mapper);
                break;
            }

            default:
                break;
            }

            return(context.Response.WriteAsync(new ErrorDetailResponse()
            {
                StatusCode = context.Response.StatusCode,
                Message = Constants.INTERNAL_SERVER_ERROR,
                Success = false
            }.ToString()));
        }
コード例 #2
0
        public async Task InvokeAsync(HttpContext httpContext, IMapper _mapper, IAPIErrorLogService _APIErrorLogService)
        {
            var apiLogRequest = new APILogRequest();

            //Copy a pointer to the original response body stream
            var originalBodyStream = httpContext.Response.Body;

            try
            {
                using (var responseBodyStream = new MemoryStream())
                {
                    if (AppSettingConfigurations.AppSettings.EnableAPILog)
                    {
                        httpContext.Request.EnableBuffering();
                        //First, get the incoming request
                        apiLogRequest.APIParams = await FormatRequest.FormatRequestBody(httpContext.Request);

                        httpContext.Request.Body.Seek(0, SeekOrigin.Begin);

                        //Read API URL
                        apiLogRequest.APIUrl = httpContext.Request.Scheme + "://" + httpContext.Request.Host + httpContext.Request.Path;

                        //Read Authorization Header
                        apiLogRequest.Headers = httpContext.Request.Headers["Authorization"];

                        // Read Method
                        apiLogRequest.Method = httpContext.Request.Method;
                        APILoggedId          = await _APIErrorLogService.InserAPILogToDB(apiLogRequest);
                    }

                    httpContext.Response.Body = responseBodyStream;
                    long length = 0;
                    httpContext.Response.OnStarting(() =>
                    {
                        httpContext.Response.Headers.ContentLength = length;
                        return(Task.CompletedTask);
                    });
                    await _next(httpContext);

                    length = httpContext.Response.Body.Length;
                    //Format the response from the server
                    var response = FormatResponse(httpContext.Response, httpContext);

                    //Copy the contents of the new memory stream (which contains the response) to the original stream, which is then returned to the client.
                    await responseBodyStream.CopyToAsync(originalBodyStream);

                    await _APIErrorLogService.UpdateAPILogToDB(new UpdateAPILogRequest()
                    {
                        APILogId = APILoggedId, Success = true
                    });
                }
            }
            catch (Exception ex)
            {
                httpContext.Response.Body = originalBodyStream;
                await HandleExceptionAsync(httpContext, ex, apiLogRequest, _APIErrorLogService, _mapper);
            }
        }
コード例 #3
0
        public async Task <int> InserAPILogToDB(APILogRequest apiLogRequest)
        {
            var apilogs = _Mapper.Map <Apilogs>(apiLogRequest);

            apilogs.StartDateTime = DateTime.UtcNow;
            await _APIErrorLogRepository.AddAsync(apilogs);

            return(apilogs.ApilogId);
        }
コード例 #4
0
        private void LogExceptionInDB(Exception exception, APILogRequest APILogRequest, IAPIErrorLogService _APIErrorLogService, IMapper _mapper)
        {
            var updateAPILogRequest = new UpdateAPILogRequest();

            updateAPILogRequest.ExceptionMsg    = exception.Message;
            updateAPILogRequest.ExceptionType   = exception.GetType().Name;
            updateAPILogRequest.ExceptionSource = GenerateExceptionMessage(exception, APILogRequest);
            updateAPILogRequest.APILogId        = APILoggedId;
            _APIErrorLogService.UpdateAPILogToDB(updateAPILogRequest);
        }
コード例 #5
0
 public APIMasterResponseDetails SendInvitation(UserRequestDetails objUserRequestDetails)
 {
     try
     {
         objDecisionPointEngine = new DecisionPointEngine();
         objAPIMasterResponse   = new APIMasterResponse();
         objAPIMasterResponse   = objDecisionPointEngine.ValidateAPIUser(objUserRequestDetails.ApiUserName, objUserRequestDetails.ApiPassword);
         if (objAPIMasterResponse.ResultCode != 216 && objAPIMasterResponse.ResultCode != 217)
         {
             objAPILogRequest = new APILogRequest()
             {
                 APIUserName = objUserRequestDetails.ApiUserName,
                 APIPassword = objUserRequestDetails.ApiPassword,
                 RefrenceId  = objUserRequestDetails.ReferenceId,
                 RequestData = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString,
             };
             objAPIMasterResponse = objDecisionPointEngine.InsertAPILog(objAPILogRequest);
             if (objAPIMasterResponse.ResultCode != 218)
             {
                 DSTInviteRequest objDSTInviteRequest = new DSTInviteRequest()
                 {
                     FirstName     = objUserRequestDetails.FirstName,
                     LastName      = objUserRequestDetails.LastName,
                     EmailId       = objUserRequestDetails.EmailId,
                     RoleTypeId    = objUserRequestDetails.RoleTypeId,
                     ClientId      = objUserRequestDetails.ClientId,
                     SubClientId   = objUserRequestDetails.SubClientId,
                     PackageId     = objUserRequestDetails.PackageId,
                     ProductId     = objUserRequestDetails.ProductId,
                     PaymentTypeId = objUserRequestDetails.PaymentTypeId,
                     ICTypeId      = objUserRequestDetails.ICTypeId,
                     BusinessName  = objUserRequestDetails.BusinessName,
                     RoleType      = objUserRequestDetails.RoleType,
                 };
                 objAPIMasterResponse = objDecisionPointEngine.SendInvitationByDST(objDSTInviteRequest);
             }
         }
         if (!object.Equals(objAPIMasterResponse, null))
         {
             objAPIMasterResponseDetails = new APIMasterResponseDetails()
             {
                 ResultId   = objAPIMasterResponse.ResultId,
                 ResultCode = objAPIMasterResponse.ResultCode
             };
         }
         return(objAPIMasterResponseDetails);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #6
0
 public IList <APIMasterResponseDetails> BatchVerifyComplianceStatus(APIComplianceStatusRequestDetails objAPIComplianceStatusRequestDetails)
 {
     try
     {
         objDecisionPointEngine = new DecisionPointEngine();
         IList <APIMasterResponseDetails> responselist = new List <APIMasterResponseDetails>();
         objAPIMasterResponse = objDecisionPointEngine.ValidateAPIUser(objAPIComplianceStatusRequestDetails.ApiUserName, objAPIComplianceStatusRequestDetails.ApiPassword);
         if (objAPIMasterResponse.ResultCode != 216 && objAPIMasterResponse.ResultCode != 217)
         {
             objAPILogRequest = new APILogRequest()
             {
                 APIUserName = objAPIComplianceStatusRequestDetails.ApiUserName,
                 APIPassword = objAPIComplianceStatusRequestDetails.ApiPassword,
                 RefrenceId  = objAPIComplianceStatusRequestDetails.ReferenceId,
                 RequestData = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString,
             };
             objAPIMasterResponse = objDecisionPointEngine.InsertAPILog(objAPILogRequest);
             if (objAPIMasterResponse.ResultCode != 218)
             {
                 objAPIComplianceStatusRequest = new APIComplianceStatusRequest()
                 {
                     ClientId    = objAPIComplianceStatusRequestDetails.ClientId,
                     SubClientId = objAPIComplianceStatusRequestDetails.SubClientId,
                     //PackageId = objAPIComplianceStatusRequestDetails.PackageId,
                     CandidateIdsCol = objAPIComplianceStatusRequestDetails.CandidateIdsCol
                 };
                 responselist = objDecisionPointEngine.GetCandidatesComplianceStatus(objAPIComplianceStatusRequest).Select(x => new APIMasterResponseDetails
                 {
                     ResultId   = x.ResultId,
                     ResultCode = x.ResultCode,
                     JCRList    = x.APIMasterResponseJCRInfoList
                 }).ToList();
             }
         }
         else
         {
             objAPIMasterResponseDetails = new APIMasterResponseDetails()
             {
                 ResultId   = objAPIMasterResponse.ResultId,
                 ResultCode = objAPIMasterResponse.ResultCode
             };
             responselist.Add(objAPIMasterResponseDetails);
         }
         JavaScriptSerializer jss = new JavaScriptSerializer();
         string output            = jss.Serialize(responselist);
         return(responselist);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #7
0
 public APIMasterResponseDetails VerifyComplianceStatus(APIComplianceStatusRequestDetails objAPIComplianceStatusRequestDetails)
 {
     try
     {
         objDecisionPointEngine = new DecisionPointEngine();
         objAPIMasterResponse   = new APIMasterResponse();
         // objAPIMasterResponseDetails = new APIMasterResponseDetails();
         objAPIMasterResponse = objDecisionPointEngine.ValidateAPIUser(objAPIComplianceStatusRequestDetails.ApiUserName, objAPIComplianceStatusRequestDetails.ApiPassword);
         if (objAPIMasterResponse.ResultCode != 216 && objAPIMasterResponse.ResultCode != 217)
         {
             objAPILogRequest = new APILogRequest()
             {
                 APIUserName = objAPIComplianceStatusRequestDetails.ApiUserName,
                 APIPassword = objAPIComplianceStatusRequestDetails.ApiPassword,
                 RefrenceId  = objAPIComplianceStatusRequestDetails.ReferenceId,
                 RequestData = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString,
             };
             objAPIMasterResponse = objDecisionPointEngine.InsertAPILog(objAPILogRequest);
             if (objAPIMasterResponse.ResultCode != 218)
             {
                 objAPIComplianceStatusRequest = new APIComplianceStatusRequest()
                 {
                     ClientId    = objAPIComplianceStatusRequestDetails.ClientId,
                     SubClientId = objAPIComplianceStatusRequestDetails.SubClientId,
                     //PackageId = objAPIComplianceStatusRequestDetails.PackageId,
                     UserId = objAPIComplianceStatusRequestDetails.UserId
                 };
                 objDecisionPointEngine = new DecisionPointEngine();
                 objAPIMasterResponse   = objDecisionPointEngine.VerifyAssignment(objAPIComplianceStatusRequest);
             }
         }
         if (!object.Equals(objAPIMasterResponse, null))
         {
             objAPIMasterResponseDetails = new APIMasterResponseDetails()
             {
                 ResultId   = objAPIMasterResponse.ResultId,
                 ResultCode = objAPIMasterResponse.ResultCode,
                 JCRList    = objAPIMasterResponse.APIMasterResponseJCRInfoList
             };
         }
         JavaScriptSerializer jss = new JavaScriptSerializer();
         string output            = jss.Serialize(objAPIMasterResponseDetails);
         return(objAPIMasterResponseDetails);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #8
0
 public APIMasterResponseDetails AddUpdateSubClient(UserRequestDetails objUserRequestDetails)
 {
     try
     {
         objDecisionPointEngine = new DecisionPointEngine();
         objAPIMasterResponse   = new APIMasterResponse();
         objAPIMasterResponse   = objDecisionPointEngine.ValidateAPIUser(objUserRequestDetails.ApiUserName, objUserRequestDetails.ApiPassword);
         if (objAPIMasterResponse.ResultCode != 216 && objAPIMasterResponse.ResultCode != 217)
         {
             objAPILogRequest = new APILogRequest()
             {
                 APIUserName = objUserRequestDetails.ApiUserName,
                 APIPassword = objUserRequestDetails.ApiPassword,
                 RefrenceId  = objUserRequestDetails.ReferenceId,
                 RequestData = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString,
             };
             objAPIMasterResponse = objDecisionPointEngine.InsertAPILog(objAPILogRequest);
             if (objAPIMasterResponse.ResultCode != 218)
             {
                 DSTInviteRequest objDSTInviteRequest = new DSTInviteRequest()
                 {
                     SubClientId  = objUserRequestDetails.SubClientId,
                     ClientId     = objUserRequestDetails.ClientId,
                     BusinessName = objUserRequestDetails.BusinessName
                 };
                 objAPIMasterResponse = objDecisionPointEngine.AddUpdateSubClient(objDSTInviteRequest);
             }
         }
         if (!object.Equals(objAPIMasterResponse, null))
         {
             objAPIMasterResponseDetails = new APIMasterResponseDetails()
             {
                 ResultId   = objAPIMasterResponse.ResultId,
                 ResultCode = objAPIMasterResponse.ResultCode
             };
         }
         return(objAPIMasterResponseDetails);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #9
0
 public string GenerateExceptionMessage(Exception exception, APILogRequest APILogRequest)
 {
     return("APIURL : " + APILogRequest.APIUrl + System.Environment.NewLine + "APIParams : " + APILogRequest.APIParams + System.Environment.NewLine + "Method : " + APILogRequest.Method + System.Environment.NewLine +
            "Error Message : " + exception.Message + System.Environment.NewLine + "Inner Exception : " + exception.InnerException + System.Environment.NewLine +
            "Source : " + exception.Source + System.Environment.NewLine + "StackTrace : " + exception.StackTrace);
 }