protected ValidationContext ValidateRegisterViewModel(RegisterViewModel viewModel) { var userEmail = viewModel.Email; var userPassword = viewModel.Password; var confirmPassword = viewModel.ConfirmPassword; //Validate email if (GameStoreValidator.IsNullOrEmpty(userEmail)) { return(new ValidationContext(false, ErrorMessages.InvalidEmail)); } var isValidEmail = userEmail.Contains("@") && userEmail.Contains("."); if (!isValidEmail) { return(new ValidationContext(false, ErrorMessages.InvalidEmail)); } //Check for existing email if (this.UserDataService.ExistsByEmail(userEmail)) { return(new ValidationContext(false, ErrorMessages.EmailIsNotUnique)); } //Validate password if (GameStoreValidator.IsNullOrEmpty(userPassword) || GameStoreValidator.IsNullOrEmpty(confirmPassword)) { return(new ValidationContext(false, ErrorMessages.InvalidPassword)); } var isValidPassword = GameStoreValidator.IsEqualOrLongerThan(userPassword, ValidationConstraints.MinPasswordLength) && userPassword.Any(up => char.IsDigit(up)) && userPassword.Any(up => char.IsLower(up)) && userPassword.Any(up => char.IsUpper(up)); //Check if passwords are invalid and don't match, so that we can combine the error messages if (!isValidPassword && !GameStoreValidator.AreEqual(userPassword, confirmPassword)) { return(new ValidationContext(false, ErrorMessages.InvalidPassword + "<br/>" + ErrorMessages.PasswordsDontMatch)); } if (!isValidPassword) { return(new ValidationContext(false, ErrorMessages.InvalidPassword)); } //Check if both passwords are equal if (!GameStoreValidator.AreEqual(userPassword, confirmPassword)) { return(new ValidationContext(false, ErrorMessages.PasswordsDontMatch)); } return(new ValidationContext(true, Success)); }
protected ValidationContext ValidateGameViewModel(GameViewModel viewModel) { var title = viewModel.Title; var price = viewModel.Price; var size = viewModel.Size; var trailerId = viewModel.TrailerId; var thumbnailUrl = viewModel.ThumbnailURL; var description = viewModel.Description; //Validate title if (!(GameStoreValidator.IsEqualOrBiggerThan(title[0], 'A') && GameStoreValidator.IsEqualOrLesserThan(title[0], 'Z') && GameStoreValidator.IsEqualOrBiggerThan(title.Length, ValidationConstraints.MinTitleLength) && GameStoreValidator.IsEqualOrLesserThan(title.Length, ValidationConstraints.MaxTitleLength))) { return(new ValidationContext(false, ErrorMessages.TitleIsInvalid)); } //Validate description if (!GameStoreValidator.IsEqualOrBiggerThan(description.Length, ValidationConstraints.DescriptionLength)) { return(new ValidationContext(false, ErrorMessages.DescriptionIsInvalid)); } //Validate price if (!(GameStoreValidator.IsPositive(price) && GameStoreValidator.CheckStringPrecision(price, ValidationConstraints.PricePrecision))) { return(new ValidationContext(false, ErrorMessages.PriceIsInvalid)); } //Validate size if (!(GameStoreValidator.IsPositive(size) && GameStoreValidator.CheckStringPrecision(size, ValidationConstraints.SizePrecision))) { return(new ValidationContext(false, ErrorMessages.SizeIsInvalid)); } //Validate trailerId if (!GameStoreValidator.StringLengthIsEqualTo(trailerId, ValidationConstraints.TrailerIdLength)) { return(new ValidationContext(false, ErrorMessages.TrailerIsInvalid)); } //Check if thumbnail is present and if yes validate it if (thumbnailUrl != null && !GameStoreValidator.StringStartsWithAny(thumbnailUrl, ValidationConstraints.ThumbnailUrls)) { return(new ValidationContext(false, ErrorMessages.ThumbnailURLIsInvalid)); } return(new ValidationContext(true, Success)); }