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())); }
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); } }
public async Task <int> InserAPILogToDB(APILogRequest apiLogRequest) { var apilogs = _Mapper.Map <Apilogs>(apiLogRequest); apilogs.StartDateTime = DateTime.UtcNow; await _APIErrorLogRepository.AddAsync(apilogs); return(apilogs.ApilogId); }
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); }
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; } }
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; } }
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; } }
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; } }
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); }