public StudentsImportViewModel(StudentHostelContext context)
 {
     this.context        = new StudentHostelContext();
     StudentsList        = new ObservableCollection <StudentViewModel>();
     GetStudentsCommand  = new Command(GetStudents, () => { return(!string.IsNullOrEmpty(FileName)); });
     SaveStudentsCommand = new Command(SaveStudents, () => { return(StudentsList.Count != 0); });
 }
Example #2
0
        public void AddGroupEffort()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);
            GroupListViewModel viewModel = new GroupListViewModel(context);

            // Определяем текущее количество записей в таблице
            int count = viewModel.GroupList.Count;

            viewModel.AddCommand.Execute("");
            viewModel.CurrentGroup = new GroupViewModel {
                GroupId = 0, GroupName = "Test"
            };
            viewModel.SaveCommand.Execute("");

            // Получаем добавленную запись
            var group = context.Groups.Where(p => p.GroupId == count + 1).FirstOrDefault();

            // Проверяем, что количество записей в таблице увеличилось на 1
            Assert.AreEqual(count + 1, context.Groups.Count());
            Assert.AreEqual(count + 1, viewModel.GroupList.Count);
            // Проверяем поле GroupId новой записи
            Assert.AreEqual(count + 1, group.GroupId);
            Assert.AreEqual(count + 1, viewModel.GroupList[count].GroupId);
            // Проверяем поле GroupName новой записи
            Assert.AreEqual("Test", group.GroupName);
            Assert.AreEqual("Test", viewModel.GroupList[count].GroupName);
        }
        // Конструктор представления модели
        public StudentListViewModel(StudentHostelContext context) : base(context)
        {
            GetData();
            GetStudentsList();

            if (StudentList != null)
            {
                CurrentStudent = null;
            }
            else if (StudentList.Count == 0)
            {
                CurrentStudent = null;
            }
            else
            {
                CurrentStudent = StudentList.First();
            }

            // Инициализация команд
            AddCommand          = new Command(Add, () => { return(!(IsAdding || IsEditing) && context != null); });
            EditCommand         = new Command(Edit, () => { return(!(IsAdding || IsEditing) && context != null); });
            SaveCommand         = new Command(SaveChanges, () => { return((IsAdding || IsEditing) && context != null); });
            DeleteCommand       = new Command(Delete, () => { return(!(IsAdding && !IsEditing) && context != null); });
            CancelCommand       = new Command(DiscardChanges, () => { return((IsAdding || IsEditing) && context != null); });
            UpdateCommand       = new Command(Update, () => { return(!(IsAdding || IsEditing) && context != null); });
            FilterCommand       = new Command(Filter, () => { return(IsBrowsing); });
            CancelFilterCommand = new Command(CancelFilter, () => { return(IsBrowsing); });
        }
Example #4
0
        public void AddStudent()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);
            StudentListViewModel viewModel = new StudentListViewModel(context);

            int count = viewModel.StudentList.Count;

            viewModel.AddCommand.Execute("");
            viewModel.CurrentStudent = new StudentViewModel
            {
                StudentId   = 0,
                Name        = "Test Student",
                Phone       = "123-123",
                Description = "Test",
                GroupName   = "2П"
            };
            viewModel.SaveCommand.Execute("");

            // Получаем новую запись из контекста
            var student = context.Students.Where(p => p.StudentId == count + 1).FirstOrDefault();

            // Проверяем, что количество записей увеличилось на 1
            Assert.AreEqual(count + 1, viewModel.StudentList.Count);
            Assert.AreEqual(count + 1, context.Students.Count());
            // Проверяем, что поле Имя сохранено верно
            Assert.AreEqual("Test Student", student.Name);
            Assert.AreEqual("Test Student", viewModel.StudentList[count].Name);
            // Проверяем, что поле Группа сохранено верно
            Assert.AreEqual("2П", student.Group.GroupName);
            Assert.AreEqual("2П", viewModel.StudentList[count].GroupName);
        }
        public AccomodationListViewModel(StudentHostelContext context) : base(context)
        {
            GetData();
            GetStudentsList();
            GetRoomsList();

            if (AccomodationList == null)
            {
                CurrentAccomodation = null;
            }
            else if (AccomodationList.Count == 0)
            {
                CurrentAccomodation = null;
            }
            else
            {
                CurrentAccomodation = AccomodationList.First();
            }

            // Инициализация команд
            AddCommand    = new Command(Add, () => { return(!(IsAdding || IsEditing) && context != null); });
            SaveCommand   = new Command(SaveChanges, () => { return((IsAdding || IsEditing) && context != null); });
            CancelCommand = new Command(DiscardChanges, () => { return((IsAdding || IsEditing) && context != null); });
            EditCommand   = new Command(Edit, () => { return(!(IsAdding || IsEditing) && isEditable && context != null); });
        }
Example #6
0
        public void GetAllStudents()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);
            StudentListViewModel viewModel = new StudentListViewModel(context);

            var groupsInVM      = viewModel.StudentList;
            var groupsInContext = context.Students.Where(p => !p.SoftDeleted);

            // Проверяем, что количествозаписей во VM = количеству неудаленных записей в контексте
            Assert.AreEqual(groupsInContext.Count(), groupsInVM.Count);
        }
Example #7
0
        public void EditGroupEffort()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);
            GroupListViewModel viewModel = new GroupListViewModel(context);

            viewModel.CurrentGroup = viewModel.GroupList.Where(p => p.GroupId == 1).FirstOrDefault();
            viewModel.EditCommand.Execute("");
            viewModel.CurrentGroup.GroupName = "NewName";
            viewModel.SaveCommand.Execute("");

            // Получаем измененную запись
            Group group = context.Groups.Where(p => p.GroupId == 1).FirstOrDefault();

            // Проверяем, что поле GroupName изменено
            Assert.AreEqual("NewName", group.GroupName);
            Assert.AreEqual("NewName", viewModel.CurrentGroup.GroupName);
            Assert.AreEqual("NewName", viewModel.GroupList[0].GroupName);
        }
Example #8
0
        public void DeleteGroupEffort()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);
            GroupListViewModel viewModel = new GroupListViewModel(context);

            // Определяем текущее количество записей в таблице
            int count = context.Groups.Where(p => !p.SoftDeleted).Count();

            // Выбираем группу, в которой нет студентов
            viewModel.CurrentGroup = viewModel.GroupList.Where(p => p.GroupId == 3).FirstOrDefault();

            viewModel.DeleteCommand.Execute("");

            // Проверяем, что количество записей стало меньше на 1
            Assert.AreEqual(count - 1, context.Groups.Where(p => !p.SoftDeleted).Count());
            Assert.AreEqual(count - 1, viewModel.GroupList.Count());
            // Проверяем, что записи больше нет в списке представления модели
            Assert.AreEqual(null, viewModel.GroupList.Where(p => p.GroupId == 3).FirstOrDefault());
            // Проверяем, что в таблице запись помечена как удаленная
            Assert.AreEqual(true, context.Groups.Where(p => p.GroupId == 3).Select(p => p.SoftDeleted).FirstOrDefault());
        }
Example #9
0
        // Конструктор модели представления
        public GroupListViewModel(StudentHostelContext context) : base(context)
        {
            GetData();

            if (GroupList == null)
            {
                CurrentGroup = null;
            }
            else if (GroupList.Count == 0)
            {
                CurrentGroup = null;
            }
            else
            {
                CurrentGroup = GroupList.First();
            }

            // Инициализация команд
            AddCommand    = new Command(Add, () => { return(!(IsAdding || IsEditing) && context != null); });
            EditCommand   = new Command(Edit, () => { return(!(IsAdding || IsEditing) && context != null); });
            SaveCommand   = new Command(SaveChanges, () => { return((IsAdding || IsEditing) && context != null); });
            DeleteCommand = new Command(Delete, () => { return(!(IsAdding || IsEditing) && context != null); });
            CancelCommand = new Command(DiscardChanges, () => { return((IsAdding || IsEditing) && context != null); });
        }
Example #10
0
        public void CannotDeleteGroup()
        {
            var connection = DbConnectionFactory.CreateTransient();
            var context    = new StudentHostelContext(connection);

            GroupListViewModel viewModel = new GroupListViewModel(context);

            // Определяем текущее количество записей в таблице
            int count = context.Groups.Where(p => !p.SoftDeleted).Count();

            // Выбираем группу, в которой числятся студенты
            viewModel.CurrentGroup = viewModel.GroupList.Where(p => p.GroupId == 2).FirstOrDefault();

            viewModel.DeleteCommand.Execute("");

            // Проверяем, что количество записей не изменилось
            Assert.AreEqual(count, context.Groups.Where(p => !p.SoftDeleted).Count());
            Assert.AreEqual(count, viewModel.GroupList.Count);
            // Проверяем, что запись не удалилась
            Assert.AreNotEqual(null, viewModel.GroupList.Where(p => p.GroupId == 2).FirstOrDefault());
            Assert.AreNotEqual(null, context.Groups.Where(p => p.GroupId == 2 && !p.SoftDeleted).FirstOrDefault());
            // Проверяем, что сообщение об ошибке появилось
            Assert.AreEqual("Невозможно удалить информацию о группе, в которой числятся проживающие студенты!", viewModel.ErrorMessage);
        }
Example #11
0
 public AutorizationViewModel(StudentHostelContext context)
 {
     this.context = context;
     CurrentUser  = new UserViewModel();
     LoginCommand = new RelayCommand(Login);
 }
 /// <summary>
 /// Конструктор представления модели
 /// </summary>
 /// <param name="context">Контекст данных</param>
 public BaseCrudViewModel(StudentHostelContext context)
 {
     this.context = context;
 }