示例#1
0
        public void CreateUser(User newUser)
        {
            var errors = GetErrors(newUser);

            if (errors.Count() > 0)
                throw new ValidationException(errors);

            ZinOSDesktop newDesktop = null;
            using (var uow = _unitOfWorkFactory.Create())
            {
                try
                {
                    newUser.DropboxUserInformation = EmptyDropboxInformation;

                    _userRepository.Add(newUser);

                    newDesktop = new ZinOSDesktop
                                         {
                                             DesktopUser = newUser
                                         };

                    _zinOSDesktopService.CreateDesktop(newDesktop);

                    uow.Commit();
                }
                catch (Exception e)
                {
                    uow.Rollback();
                    HandleRepositoryException(e);
                    throw;
                }
            }
            _zinOSDesktopService.PrepareFileSystem(newDesktop);
        }
示例#2
0
        private static IEnumerable<ValidationError> GetErrors(User user)
        {
            const int usernameMaxLength = 15;

            var errors = new List<ValidationError>();

            if (String.IsNullOrEmpty(user.Name) || String.IsNullOrWhiteSpace(user.Name))
                errors.Add(new ValidationError("Name", "Name can not be blank"));

            if (String.IsNullOrEmpty(user.Username) || String.IsNullOrWhiteSpace(user.Username))
                errors.Add(new ValidationError("Username", "Username can not be blank"));

            if (!String.IsNullOrEmpty(user.Username) && user.Username.Length > usernameMaxLength)
                errors.Add(new ValidationError("Username",
                    String.Format("Username must not exceed {0} characters",usernameMaxLength)));

            if (String.IsNullOrEmpty(user.Password) || String.IsNullOrWhiteSpace(user.Password))
                errors.Add(new ValidationError("Password", "Password can not be blank"));

            return errors;
        }