示例#1
0
        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);
                }
            }
        }
示例#2
0
        // 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));
        }