public CompaniesListViewModel() { Companies = new CompaniesCollection(RaP_DAO.GetCompanies()); }
/// <summary> /// Валидация страницы /// </summary> /// <param name="columnName">Название элемента для валидации</param> /// <returns></returns> public override string Validate(string columnName) { // Текст ошибки string error = null; switch (columnName) { case nameof(Login): Login = Login.Trim(); if (string.IsNullOrEmpty(Login)) { error = "Логин не введён"; } else if (Login.Length < 3) { error = "Минимум 3 символа"; } else if (Login.Length > 150) { error = "Максимум 150 символов"; } else if (RaP_DAO.IsLoginExists(id ?? 0, Login)) { error = "Этот логин занят"; } else { // Проверка, что в логин состоит только из букв и цифр bool onlyLettersAndDigits = false; bool atLeastOneLetter = false; for (int i = 0; i < Login.Length && !onlyLettersAndDigits && !atLeastOneLetter; i++) { onlyLettersAndDigits = char.IsLetter(Login[i]) || char.IsDigit(Login[i]); atLeastOneLetter = char.IsLetter(Password[i]); } if (!onlyLettersAndDigits) { error = "Логин должен состоять только из букв и цифр"; } else if (!atLeastOneLetter) { error = "Введите хотя бы 1 букву"; } } break; case nameof(Password): Password = Password.Trim(); if (string.IsNullOrEmpty(Password)) { error = "Введите пароль"; } else if (Password.Length < 6) { error = "Минимум 6 символов"; } else if (Password.Length > 50) { error = "Максимум 50 символов"; } else if (Password == Login) { error = "Пароль не может совпадать с логином"; } else { // Проверка, что в пароле есть хотя бы 1 буква bool atLeastOneLetter = false; for (int i = 0; i < Password.Length && !atLeastOneLetter; i++) { atLeastOneLetter = char.IsLetter(Password[i]); } if (!atLeastOneLetter) { error = "Введите хотя бы 1 букву"; } } break; case nameof(SelectedCompany): if (SelectedCompany == null) { error = "Выберите компанию сотрудника"; } break; } if (ErrorCollection.ContainsKey(columnName)) { ErrorCollection[columnName] = error; } else { ErrorCollection.Add(columnName, error); } OnPropertyChanged(nameof(ErrorCollection)); return(error); }
/// <summary> /// Для вывода всех пользователей /// </summary> public CompanyUsersViewModel() { CompanyUsers = new UsersCollection(RaP_DAO.GetUsers()); Header = "Список сотрудников"; }
// На добавление public AddEditUserViewModel() { CompaniesList = RaP_DAO.GetCompanies(); Header = "Добавить сотрудника"; }
/// <summary> /// Для вывода пользователей определённой компании /// </summary> /// <param name="company">Компания</param> public CompanyUsersViewModel(Company company) { CompanyUsers = new UsersCollection(RaP_DAO.GetCompanyUsers(company)); Header = "Сотрудники компании «" + company + "»"; }