/// <summary> /// Method to parse an exception, and return an appropriate HTTP response and message. /// </summary> internal HttpResponseMessage GenerateExceptionMessage(Exception e) { InvalidRequest ReturnRequest = new InvalidRequest(); if (e is MalformedRequestException) { ReturnRequest.Status = HttpStatusCode.BadRequest; ReturnRequest.ErrorMessage = "Malformed Request"; } //For RasterExceptions (which are thrown by the LEADTOOLS SDK), we return the exception message in the response for debugging purposes. In a production environment, these exception messages should NOT be bubbled up to user. else if (e is RasterException) { ReturnRequest.Status = HttpStatusCode.InternalServerError; ReturnRequest.ErrorMessage = e.Message; } else { ReturnRequest.Status = HttpStatusCode.InternalServerError; ReturnRequest.ErrorMessage = e.Message; } return(new HttpResponseMessage() { StatusCode = ReturnRequest.Status, Content = new StringContent(ReturnRequest.ErrorMessage) }); }
public async Task GivenIHaveAnAddParticipantToAHearingRequestWithAParticipantId() { var request = new InvalidRequest(); var jsonBody = RequestHelper.SerialiseRequestToSnakeCaseJson(request.BuildRequest()); Context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json"); var seededHearing = await Context.TestDataManager.SeedVideoHearing(); Context.TestData.NewHearingId = seededHearing.Id; NUnit.Framework.TestContext.WriteLine($"New seeded video hearing id: {seededHearing.Id}"); Context.Uri = AddParticipantsToHearing(Context.TestData.NewHearingId); Context.HttpMethod = HttpMethod.Post; }
public void InvalidRequestConstructorTest() { // Arrange var expectedMessage = "InvalidRequestMessage"; var expectedInvalidProperties = new List <string> { "InvalidProperty1", "InvalidProperty2" }; // Act var target = new InvalidRequest(expectedMessage, expectedInvalidProperties); // Assert Assert.IsNotNull(target); Assert.AreEqual(expectedMessage, target.Message); CollectionAssert.AreEqual(expectedInvalidProperties, target.InvalidProperties.ToList()); }
public IActionResult OnderhoudsopdrachtAfmelden([FromBody] OnderhoudAfmeldenCommand onderhoudAfmeldenCommand) { if (!ModelState.IsValid) { var badRequestMessage = $"Request bevat: {ModelState.ErrorCount} fouten"; _logger.Log(new LogMessage($"{badRequestMessage} | {GetType().Name}")); var badRequest = new InvalidRequest(badRequestMessage, ModelState.Keys); return(BadRequest(badRequest)); } try { // Proces command using OnderhoudService (DomainService) _onderhoudsopdrachtService.OnderhoudsopdrachtAfmelden(onderhoudAfmeldenCommand); return(new OkResult()); } catch (Exception ex) { var badRequestMessage = "Er ging iets mis. Onderhoud niet afgemeld."; _logger.LogException(new LogMessage(ex.Message, ex.StackTrace)); var badRequest = new InvalidRequest(badRequestMessage, new List <string>()); return(BadRequest(badRequest)); } }
protected async override Task <IValueProvider> BuildAsync(WebPubSubRequestAttribute attrResolved, IReadOnlyDictionary <string, object> bindingData) { if (bindingData == null) { throw new ArgumentNullException(nameof(bindingData)); } bindingData.TryGetValue(HttpRequestName, out var httpRequest); var request = httpRequest as HttpRequest; var httpContext = request?.HttpContext; if (httpContext == null) { return(new WebPubSubRequestValueProvider(new WebPubSubRequest(null, new InvalidRequest(HttpStatusCode.BadRequest), HttpStatusCode.BadRequest), _userType)); } // Build abuse response if (Utilities.RespondToServiceAbuseCheck(httpContext.Request, _options.AllowedHosts, out var abuseResponse)) { var abuseRequest = new WebPubSubRequest(null, new ValidationRequest(abuseResponse.StatusCode == HttpStatusCode.OK), abuseResponse); return(new WebPubSubRequestValueProvider(abuseRequest, _userType)); } // Build service request context if (!TryParseRequest(request, out var connectionContext)) { // Not valid WebPubSubRequest return(new WebPubSubRequestValueProvider(new WebPubSubRequest(connectionContext, new InvalidRequest(HttpStatusCode.BadRequest, Constants.ErrorMessages.NotValidWebPubSubRequest), HttpStatusCode.BadRequest), _userType)); } // Signature check // TODO: make the check more accurate for current function instead from global settings. if (!Utilities.ValidateSignature(connectionContext.ConnectionId, connectionContext.Signature, _options.AccessKeys)) { return(new WebPubSubRequestValueProvider(new WebPubSubRequest(connectionContext, new InvalidRequest(HttpStatusCode.Unauthorized, Constants.ErrorMessages.SignatureValidationFailed), HttpStatusCode.Unauthorized), _userType)); } WebPubSubRequest wpsRequest; var requestType = Utilities.GetRequestType(connectionContext.EventType, connectionContext.EventName); switch (requestType) { case RequestType.Connect: { var content = await ReadString(request.Body).ConfigureAwait(false); var eventRequest = JsonConvert.DeserializeObject <ConnectEventRequest>(content); wpsRequest = new WebPubSubRequest(connectionContext, eventRequest); } break; case RequestType.Connected: { wpsRequest = new WebPubSubRequest(connectionContext, new ConnectedEventRequest()); } break; case RequestType.Disconnected: { var content = await ReadString(request.Body).ConfigureAwait(false); var eventRequest = JsonConvert.DeserializeObject <DisconnectedEventRequest>(content); wpsRequest = new WebPubSubRequest(connectionContext, eventRequest); } break; case RequestType.User: { var contentType = MediaTypeHeaderValue.Parse(request.ContentType); if (!Utilities.ValidateMediaType(contentType.MediaType, out var dataType)) { var invalidRequest = new InvalidRequest(HttpStatusCode.BadRequest, $"{Constants.ErrorMessages.NotSupportedDataType}{request.ContentType}"); return(new WebPubSubRequestValueProvider(new WebPubSubRequest(connectionContext, invalidRequest, HttpStatusCode.BadRequest), _userType)); } var payload = ReadBytes(request.Body); var eventRequest = new MessageEventRequest(BinaryData.FromBytes(payload), dataType); wpsRequest = new WebPubSubRequest(connectionContext, eventRequest); } break; default: wpsRequest = new WebPubSubRequest(connectionContext, new InvalidRequest(HttpStatusCode.NotFound, "Unknown request")); break; } return(new WebPubSubRequestValueProvider(wpsRequest, _userType)); }