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); }
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; }