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); }); }
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); }); }
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); }); }
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); }
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); }
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()); }
// Конструктор модели представления 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); }); }
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); }
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; }