public void WhenITryToSendRequestToEndPointAndGetResponse() { var ipAddress = Get <string>(SecurityContextFields.IpAddress); var brandName = Get <string>(SecurityContextFields.BrandName); var request = new VerifyIpRequest { IpAddress = ipAddress, BrandName = brandName }; try { var result = MemberApiProxy.VerifyIp(request); result.Should().NotBeNull(); Set(SecurityContextFields.ErrorCode, HttpStatusCode.OK); Set(SecurityContextFields.Result, result); } catch (MemberApiValidationException e) { Set(SecurityContextFields.ErrorCode, e.StatusCode); var regoValidationError = e.ValidationErrors.FirstOrDefault(); if (regoValidationError != null) { Set(SecurityContextFields.ErrorMessage, regoValidationError.ErrorMessage); } } }
// Security public VerifyIpResponse VerifyIp(VerifyIpRequest request) { // this call is used in an attribute. If I make this method async, the application hangs var result = Task.Run(() => HttpClient.SecurePostAsJsonAsync(Token, "api/Security/VerifyIp", request)).Result; return(EnsureApiResultSync <VerifyIpResponse>(result)); }
public VerifyIpResponse VerifyIp(VerifyIpRequest request) { var brand = _brands.Brands.SingleOrDefault(b => b.Code == request.BrandName); if (brand == null) { throw new RegoValidationException(ErrorMessagesEnum.InvalidBrandCode.ToString()); } Core.Security.Data.IpRegulations.VerifyIpResult result; try { result = _regulations.VerifyIpAddress(request.IpAddress, brand.Id); } catch (FormatException) { throw new RegoValidationException(ErrorMessagesEnum.InvalidIpAddress.ToString()); } var verifyIpResult = Mapper.Map <VerifyIpResult>(result); return(new VerifyIpResponse(verifyIpResult)); }