public async Task <IValidationState> RegisterUser(UserRegistrationModel registrationModel) { ValidationState validationState = new ValidationState(); if (registrationModel == null) { validationState.AddError("Invalid data.", "Data"); return(validationState); } if (string.IsNullOrEmpty(registrationModel.Username)) { validationState.AddError("Invalid username.", "Username"); return(validationState); } if (registrationModel.Password.Length < 6) { validationState.AddError("Invalid password.", "Password"); return(validationState); } var existingUser = _context.Users.SingleOrDefault(x => x.Username == registrationModel.Username); if (existingUser != null) { validationState.AddError("User already exists, choose another username.", "Username"); return(validationState); } var newUser = new User() { Username = registrationModel.Username, Regdate = DateTime.Now, Password = registrationModel.Password, Email = registrationModel.Email }; var registrationCode = "aaabbbccc"; newUser.AddCode(registrationCode); var mail = await _mailProvider.GetRegistrationMailBody("http://localhost:8080/#/"); await _mailingService.SendEmail(mail, newUser.Email); _context.Users.Add(newUser); _context.SaveChanges(); return(validationState); }
protected virtual void HandleException(string area, Exception ex) { if (ExceptionHandler != null) { ExceptionHandler.HandleException(ex); } ValidationState.AddError(area, ex.Message); }
/// Implements simple validation, for example: /// Property is of type Int32, so it can not be 0 or property is of type String can not be null or empty /// It can be overrided on other classes that inherits BaseEntity public ValidationState Validate() { ValidationState validation = new ValidationState(); if (this.Id == 0) { validation.AddError(nameof(this.Id)); } if (String.IsNullOrEmpty(this.CreationUser)) { validation.AddError(nameof(this.CreationUser)); } if (this.CreationDate == DateTime.MinValue || this.CreationDate == null) { validation.AddError(nameof(this.CreationDate)); } if (String.IsNullOrEmpty(this.ModifiedUser)) { validation.AddError(nameof(this.ModifiedUser)); } if (this.ModifiedDate == DateTime.MinValue || this.ModifiedDate == null) { validation.AddError(nameof(this.ModifiedDate)); } string[] allowedActiveValues = { "A", "I" }; if (String.IsNullOrEmpty(this.Active) || !allowedActiveValues.Any(x => x == this.Active)) { validation.AddError(nameof(this.Active)); } //foreach (var field in this.GetType().GetProperties()) //{ // switch (field.PropertyType.Name) // { // case "Int32": // if (Convert.ToInt32(this.GetType().GetProperty(field.Name).GetValue(this, null)) == 0) // validation.AddError(field.Name); // break; // case "String": // if (String.IsNullOrEmpty(Convert.ToString(this.GetType().GetProperty(field.Name).GetValue(this, null)))) // validation.AddError(field.Name); // break; // case "DateTime": // if (Convert.ToDateTime(this.GetType().GetProperty(field.Name).GetValue(this, null)) == DateTime.MinValue) // validation.AddError(field.Name); // break; // } //} return(validation); }