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))); }
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())); }
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())); }