예제 #1
0
        public static ApiValidatedResult <string> ValidateAndFormat(string number, bool allowNationalNumberOnly, bool allowSmsTargetOnly)
        {
            if (string.IsNullOrWhiteSpace(number))
            {
                return(ApiValidatedResult <string> .Failure(ValidationErrorInputIsNullOrEmpty));
            }

            if (!IsPossibleNumber(number))
            {
                return(ApiValidatedResult <string> .Failure(ValidationErrorInputIsNotAPossiblePhoneNumber));
            }

            var parsedNumber = ParseAndValidate(number);

            if (parsedNumber == null)
            {
                return(ApiValidatedResult <string> .Failure(ValidationErrorInputIsNotAValidPhoneNumber));
            }

            if (allowNationalNumberOnly && !IsNationalNumber(parsedNumber))
            {
                return(ApiValidatedResult <string> .Failure(ValidationErrorInputIsNotANationalNumber));
            }

            if (allowSmsTargetOnly && !CanReceiveSms(parsedNumber))
            {
                return(ApiValidatedResult <string> .Failure(ValidationErrorInputIsNotAValidSmsTarget));
            }

            return(ApiValidatedResult <string> .Ok(Format(parsedNumber)));
        }
예제 #2
0
        public static async Task <ApiValidatedResult <string> > ToRawValidatedResult(this HttpResponseMessage response)
        {
            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

                return(ApiValidatedResult <string> .Ok(content));
            }

            return(ApiValidatedResult <string> .Failure(await response.Content.ReadAsStringAsync()));
        }
예제 #3
0
        public static async Task <ApiValidatedResult <TResponse> > ToValidatedResult <TResponse>(this HttpResponseMessage response)
        {
            if (response.IsSuccessStatusCode)
            {
                var content = await response.DeserializeAsync <TResponse>();

                return(ApiValidatedResult <TResponse> .Ok(content));
            }

            return(ApiValidatedResult <TResponse> .Failure(response.ToValidationError()));
        }