示例#1
0
 /// <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);
     }
 }
示例#2
0
        private void ResolveView(User user)
        {
            switch (user.Role)
            {
                case UserRole.Administrator:
                    new AdministratorView(user).Show();
                    break;
            }

        }
示例#3
0
        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);
        }
示例#5
0
 /// <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);
 }