Example #1
0
        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);
        }
Example #2
0
        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);
        }