public override async Task <Student[]> GetStudentWithExceptedAddedStudent(string condition, string searchCriteria, CancellationToken token) { return(await Task.Factory.StartNew(() => { var students = (IEnumerable <Student>)EFGenericRepository.Get <Student>(s => s.GroupId == null).ToArray(); var existGroup = EFGenericRepository.Get <Group>(g => g.Name == groupBoard.GetNameOfGroup).FirstOrDefault(); var currentStudent = existGroup?.Students; if (currentStudent != null) { students = students.Union(currentStudent); } if (condition != string.Empty) { students = students.Where(searchCriteria, condition); } if (groupBoard.AddedStudentControlCollection.Count == 0) { return students.ToArray(); } var addedStudents = groupBoard.AddedStudentControlCollection .Cast <IStudentView>() .Select(s => EFGenericRepository.Find <Student>(s.Id)); return students.Except(addedStudents).ToArray(); }, token)); }
private bool GroupBoardSecond_AcceptClick() { var students = new List <Student>(); foreach (IStudentView studentView in _groupBoardSecond.AddedStudentControlCollection) { students.Add(EFGenericRepository.Find <Student>(studentView.Id)); } var group = new Group { Id = _groupBoardSecond.CurrentGroup.Id, Name = _groupBoardSecond.GetNameOfGroup, Students = students, Photo = _groupBoardSecond.GetGroupPhoto.SetPhoto(_groupBoardSecond.CurrentGroup.Photo) }; if (!group.Equals(_groupBoardSecond.CurrentGroup, group)) { _groupBoardSecond.CurrentGroup.SetCopy(group); EFGenericRepository.Update(_groupBoardSecond.CurrentGroup); return(true); } return(false); }
private void EditStudentView_Click(object sender, EventArgs e) { _editStudentBoardFirst.EditStudent = EFGenericRepository.Find <Student>(((IStudentView)((Control)sender).Parent).Id); _editStudentBoardFirst.LoadingSecondForm(); }
private bool AddGroupBoard_SaveClick() { if (string.IsNullOrWhiteSpace(_addGroupBoard.GetNameOfGroup) || _addGroupBoard.GetGroupPhoto == null || _addGroupBoard.AddedStudentControlCollection.Count == 0) { return(false); } var students = new List <Student>(); foreach (IStudentView studentView in _addGroupBoard.AddedStudentControlCollection) { students.Add(EFGenericRepository.Find <Student>(studentView.Id)); } var group = new Group { Id = new Random(Guid.NewGuid().GetHashCode()).Next(), Name = _addGroupBoard.GetNameOfGroup, Students = students, Photo = _addGroupBoard.GetGroupPhoto.ConvertImageToByteArr() }; EFGenericRepository.Create(group); _addGroupBoard.ClearView(); _addGroupBoard.AddedStudentControlCollection.Clear(); return(true); }
private void DataBoard_DeleteEntity(object sender, EventArgs e) { switch (((EntityArgs)e).Entity) { case StudentView studentView: { var studentToDelete = EFGenericRepository.Find <Student>(studentView.Id); EFGenericRepository.Delete(studentToDelete); break; } case GroupView groupView: { var deleteDialog = new DeleteDialog(); if (deleteDialog.ShowDialog() == DialogResult.OK) { var retiringGroup = EFGenericRepository.Find <Group>(groupView.Id); if (deleteDialog.IsDeleteMembers) { EFGenericRepository.DeleteRange(retiringGroup.Students); } EFGenericRepository.Delete(retiringGroup); } break; } } }
private void GroupInfoForm_LoadForm(object sender, EventArgs e) { var group = EFGenericRepository.Find <Group>(_groupInfoForm.Id); _groupInfoForm.GroupName = group.Name; _groupInfoForm.Photo = group.Photo.ConvertByteArrToImage(); _groupInfoForm.Students = group.Students.GetViews <Student, StudentView>().ToList(); }
public static IList <TResult> TransformControlsToEntities <TResult>(this ControlCollection controlCollection) where TResult : class, IEntity { var entities = new List <TResult>(controlCollection.Count); entities.AddRange(controlCollection.Cast <IEntityControlView <TResult> >() .Select(control => EFGenericRepository.Find <TResult>(control.Id))); return(entities); }
private void GroupBoardSecond_CancelClick(object sender, EventArgs e) { //todo ?? foreach (var addedStudentView in _groupBoardSecond.AddedStudentControlCollection.Cast <AddedStudentViewBoard>() .ToArray()) { if (EFGenericRepository.Find <Student>(addedStudentView.Id).GroupId == null) { CancelButton_Click(addedStudentView, EventArgs.Empty); } } }
protected void CancelButton_Click(object sender, EventArgs e) { //получаем addedStudentView на котором было вызвано событие button_Click var addedStudentView = sender as IStudentView ?? (IStudentView)((Control)sender).Parent; var studentView = (IStudentView)this.currentStudentView.Clone(); studentView.FillView(EFGenericRepository.Find <Student>(addedStudentView.Id)); groupBoard.AddedStudentControlCollection.Remove((Control)addedStudentView); groupBoard.CurrentStudentControlCollection.Add((Control)studentView); }
private void EditGroupBoardFirst_EditGroupButtonClick(object sender, EventArgs e) { var selectedGroup = _editGroupBoardFirst.GroupCollection .Cast <IGroupView>() .FirstOrDefault(gv => gv.IsSelected == true); if (selectedGroup != null) { _editGroupBoardFirst.EditGroup = EFGenericRepository.Find <Group>(selectedGroup.Id); _editGroupBoardFirst.LoadingSecondForm(); } }
private void AddStudentButton_Click(object sender, EventArgs e) { //получаем studentViewBoard на котором было вызвано событие button_Click var studentViewBoard = (IStudentView)((Control)sender).Parent; //создаем addedStudentViewBoard (клонируем переданный экземпляр конкретного класса) var addedStudentView = (IStudentView)this.addedStudentView.Clone(); //заполняем addedStudentViewBoard полями studentViewBoard на котороым было вызвано событие Click addedStudentView.FillView(EFGenericRepository.Find <Student>(studentViewBoard.Id)); groupBoard.CurrentStudentControlCollection.Remove((Control)studentViewBoard); groupBoard.AddedStudentControlCollection.Add((Control)addedStudentView); }
public static async Task <IList <TResult> > TransformControlsToEntitiesAsync <TResult>( this ControlCollection controlCollection, CancellationToken token) where TResult : class, IEntity { return(await Task.Run(() => { var entities = new List <TResult>(controlCollection.Count); entities.AddRange(controlCollection.Cast <IEntityControlView <TResult> >() .Select(control => EFGenericRepository.Find <TResult>(control.Id))); return entities; }, token)); }
private IEntity DataBoard_GetEntityBySelectedView(object sender, EntityTransferEventArgs e) { var selectedView = e.Entity; switch (selectedView) { case StudentView studentView: return(EFGenericRepository.Find <Student>(studentView.Id)); case GroupView groupView: return(EFGenericRepository.Find <Group>(groupView.Id)); default: return(null); } }
private async Task <IEnumerable <StudentView> > GetStudent(string conditions, CancellationToken token) { return(await Task.Run(() => { if (conditions != string.Empty) { return EFGenericRepository.Find <Group>(_groupInfoForm.Id) .Students .GetViews <Student, StudentView>() .Where(s => s.FirstName.ToUpperInvariant() .Contains(conditions.ToUpperInvariant())) .ToArray(); } return EFGenericRepository.Find <Group>(_groupInfoForm.Id) .Students .GetViews <Student, StudentView>() .ToArray(); }, token)); }
private void AddGroupBoard_ClearClick(object sender, EventArgs e) { _addGroupBoard.ClearView(); if (_addGroupBoard.AddedStudentControlCollection.Count != 0) { foreach (var obj in _addGroupBoard.AddedStudentControlCollection) { var control = obj as Control; var studentView = (IStudentView)currentStudentView.Clone(); studentView.FillView(EFGenericRepository.Find <Student>( ((IStudentView)control).Id)); _addGroupBoard.CurrentStudentControlCollection.Add((Control)studentView); } _addGroupBoard.AddedStudentControlCollection.Clear(); } }
/// <summary> /// Асинхронный выбор студентов, учитывая фильтр (searchTextBox.Text) и вычитание из результата уже добавленных студентов(addedStudentFlowPanel). /// </summary> /// <param name="condition">Условие, по которому будет формироваться выборка студентов.</param> /// <returns></returns> public virtual async Task <Student[]> GetStudentWithExceptedAddedStudent(string condition, string searchCriteria, CancellationToken token) { return(await Task.Factory.StartNew(() => { var students = EFGenericRepository.Get <Student>(s => s.GroupId == null); if (condition != string.Empty) { students = students.Where(searchCriteria, condition); } if (groupBoard.AddedStudentControlCollection.Count == 0) { return students.ToArray(); } var addedStudents = groupBoard.AddedStudentControlCollection .Cast <IStudentView>() .Select(s => EFGenericRepository.Find <Student>(s.Id)); return students.Except(addedStudents).ToArray(); }, token)); }
private void StudentInfoForm_FormLoad(object sender, EventArgs e) { var student = EFGenericRepository.Find <Student>(_studentInfoForm.Id); FillView(student); }