/// <summary> /// Проверяет наличие пользователя в бд по логину /// логин не PK конечно, но по логике он является уникальным индексом /// </summary> public static async Task<bool> ExistsAsync(User user) { using (var context = new AirlinesContext()) { return await context.UserSet.FirstOrDefaultAsync(u => u.Login.Equals(user.Login, StringComparison.CurrentCultureIgnoreCase)) != default(User); } }
private void ResolveView(User user) { switch (user.Role) { case UserRole.Administrator: new AdministratorView(user).Show(); break; } }
public void AddUserTest() { var users = airlinesContext.Set<User>(); var user = new User { Login = "******", Password = "******" }; users.Add(user); airlinesContext.SaveChanges(); Assert.IsTrue(users.Count() == 1); }
public AdministratorViewModel(User administrator) { _dataSet = new AirlinesDataSet(); _adapter = new UserSetTableAdapter(); _adapter.Fill(_dataSet.UserSet); UsersDataView = _dataSet.UserSet.DefaultView; CurrentUser = administrator; _updateViewTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(700) }; _updateViewTimer.Tick += async (sender, args) => await ApplyFilter(); Messenger.Default.Register<Message>(this, RefreshDataSet, Context.AddContext); }
/// <summary> /// Добавляет пользователя в бд /// При этом считается что все необходимые проверки уже были выполнены /// То есть данные заполнены правильно и такого пользователя нет в бд /// </summary> public static async Task<bool> AddUserAsync(User user) { using (var context = new AirlinesContext()) { try { context.UserSet.Add(user); await context.SaveChangesAsync(); } catch (Exception) { return false; } } return true; }
/// <summary> /// Формируем пользователя из данных из текст-боксов /// И вызываем метод добавления пользователя в базу данных /// Если пользователь добавлен успешно -- выводим сообщение и отправляем /// сообщение в AdministratorViewModel для того чтобы обновился список пользователей /// В случае ошибки -- выводим сообщение /// </summary> private async Task AddUserAsync() { if (!Password.Equals(RepeatedPassword)) { Info = "Пароли не совпадают."; return; } var user = new User { Login = this.Login, Password = this.Password, FirstName = this.FirstName, LastName = this.LastName, Role = this.Role }; var exists = await UserService.ExistsAsync(user); if (!exists) { var added = await UserService.AddUserAsync(user); if (added) { MessageForeground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00BCD4")); Info = $"Пользователь {user.Login} успешно добавлен."; Messenger.Default.Send(Message.Empty, Context.AddContext); FlushData(); } else Info = "Произошла ошибка при добавлении пользователя"; } else { Info = "Пользователь с таким логином уже существует."; } }
public AdministratorView(User administrator) : this() { DataContext = new AdministratorViewModel(administrator); }