public TweezersValidationResult Validate(string fieldName, dynamic value) { try { string parsedValue = (string)value; return(parsedValue.Length >= Minimum ? TweezersValidationResult.Accept() : TweezersValidationResult.Reject($"The length of {fieldName} is lower than {Minimum}")); } catch { return(TweezersValidationResult.Reject($"Could not parse {fieldName}")); } }
public TweezersValidationResult Validate(string fieldName, dynamic value) { try { string parsedValue = (string)value; Regex regex = new Regex(Pattern); return(regex.IsMatch(parsedValue) ? TweezersValidationResult.Accept() : TweezersValidationResult.Reject($"{fieldName} does not match pattern '{Pattern}'")); } catch { return(TweezersValidationResult.Reject($"Could not parse {fieldName}")); } }
public TweezersValidationResult Validate(string fieldName, dynamic value) { try { string parsedValue = (string)value; return(parsedValue.In(AllowedValues) ? TweezersValidationResult.Accept() : TweezersValidationResult.Reject( $"Invalid {fieldName}, possible values are: [{AllowedValues.ToArrayString()}]")); } catch { return(TweezersValidationResult.Reject($"Could not parse {fieldName}")); } }
private static TweezersObject ReplaceTweezersObject(TweezersObject data) { data.Fields = data.Fields.ToDictionary(kvp => kvp.Value.FieldProperties.Name, kvp => kvp.Value); JObject dataAsJObject = JObject.FromObject(data, Serializer.JsonSerializer); dataAsJObject["fields"] = JArray.FromObject( data.Fields.Select(kvp => JObject.FromObject(kvp.Value.FieldProperties, Serializer.JsonSerializer))); TweezersValidationResult validationResult = SchemaManagement.SchemaMetadata.Validate(dataAsJObject, false); TweezersSchemaFactory.AddObject(data); TweezersObject obj = TweezersSchemaFactory.Find(data.CollectionName); return(obj); }
public TweezersValidationResult Validate(string fieldName, dynamic value) { string passwordStr = value.ToString(); if (string.IsNullOrWhiteSpace(passwordStr)) { return(TweezersValidationResult.Reject("empty password")); } bool hasCapitalLetter = passwordStr.Any(char.IsUpper); bool hasLowerLetter = passwordStr.Any(char.IsLower); bool hasDigit = passwordStr.Any(char.IsNumber); if (hasCapitalLetter && hasLowerLetter && hasDigit) { return(TweezersValidationResult.Accept()); } return(TweezersValidationResult.Reject("invalid password, must contain at least one capital letter, one lower letter and one number")); }
public ActionResult <JObject> Patch(string id, [FromBody] CreateUserRequest patchRequest) { if (!IdentityManager.UsingIdentity) { return(TweezersNotFound()); } return(WrapWithAuthorizationCheck(() => { try { if (FindUser(patchRequest.Username) == null) { throw new TweezersValidationException(TweezersValidationResult.Reject($"Unable to find user")); } JObject userJObject = JObject.FromObject(patchRequest, Serializer.JsonSerializer); if (patchRequest.Password != null) { TweezersValidationResult passwordOk = UsersLoginSchema.Fields["password"].Validate(patchRequest.Password); if (!passwordOk.Valid) { throw new TweezersValidationException(passwordOk); } userJObject["passwordHash"] = Hash.Create(patchRequest.Password); } TweezersObject usersObjectMetadata = TweezersSchemaFactory.Find (IdentityManager.UsersCollectionName, true, true); usersObjectMetadata.Validate(userJObject, true); JObject user = usersObjectMetadata.Update(TweezersSchemaFactory.DatabaseProxy, id, userJObject); return TweezersOk(user); } catch (TweezersValidationException e) { return TweezersBadRequest(e.Message); } }, "Patch", DefaultPermission.Edit, IdentityManager.UsersCollectionName)); }
public TweezersValidationResult Validate(string fieldName, dynamic value) { return(value == null ? TweezersValidationResult.Reject($"{fieldName} cannot be null.") : TweezersValidationResult.Accept()); }
public TweezersValidationException(TweezersValidationResult result) { _result = result; }
private TweezersValidationResult Reject(string fieldName) { return(TweezersValidationResult.Reject($"Field {fieldName} is not of type {this.Name}")); }