void DataLoading() { LeadProjsLogic.Login = Credentials.Login; LeadProjsLogic.Password = Credentials.Password; Title = LeaderView.Surname + " " + LeaderView.Name + " " + LeaderView.MiddleName + ": Руководимые проекты"; errCaption = LeaderView.Surname + " " + LeaderView.Name + " " + LeaderView.MiddleName + ": Руководимые проекты - Ошибка"; List <Project> projects = new List <Project>(); IEnumerable <EmplProjView> leadProjViews; try { projects = LeadProjsLogic.GetProjects(); } catch (Exception ex) { MessageBoxVM = new MessageBoxModel() { Message = ErrorMessage.MakingMessageForMessageBox(ex), Caption = errCaption }; Log.WriteLogAsync(ex); leadProjViews = new List <EmplProjView>(); } leadProjViews = Mapper.Map <IEnumerable <EmplProjView> >(projects); foreach (var leadProjView in leadProjViews) { if (LeaderView.LeadProjViews.FirstOrDefault(lPV => lPV.Id == leadProjView.Id) == null) { leadProjView.IsChecked = false; } } foreach (var leadProjView in leadProjViews) { leadProjView.PropertyChanged += (s, e) => OnLeadProjViewChanged(leadProjView, e.PropertyName); LeadProjViews.Add(leadProjView); } }
void CancelChanges() { if (LeadProjViews.Where(v => v.IsChanged == true).Count() > 0) { MessageBoxVM = new MessageBoxModel() { Message = "Все внесённые изменения будут удалены. Продолжить?", Caption = LeaderView.Surname + " " + LeaderView.Name + " " + LeaderView.MiddleName + ":Руководимые проекты", Buttons = MessageBoxButton.YesNo }; if (MessageBoxVM.Result == MessageBoxResult.Yes) { foreach (var lPV in LeadProjViews) { if (lPV.IsChanged) { lPV.IsChecked = lPV.Backup.IsChecked; } } } } }
void SaveChanges() { MessageBoxVM = new MessageBoxModel() { Message = "Выполнить сохранение всех внесённых изменений?", Caption = LeaderView.Surname + " " + LeaderView.Name + " " + LeaderView.MiddleName + ": Руководимые проекты", Buttons = MessageBoxButton.YesNo }; if (MessageBoxVM.Result == MessageBoxResult.Yes) { Employee leader = Mapper.Map <EmployeeView, Employee>(LeaderView); IEnumerable <EmplProjView> leadProjViewsToAdd = LeadProjViews.Where(lPV => lPV.IsChanged && lPV.IsChecked); IEnumerable <EmplProjView> leadProjViewsToDelete = LeadProjViews.Where(lPV => lPV.IsChanged && lPV.IsChecked == false); List <Project> projsToAdd = Mapper.Map <IEnumerable <EmplProjView>, List <Project> >(leadProjViewsToAdd); List <Project> projsToDelete = Mapper.Map <IEnumerable <EmplProjView>, List <Project> >(leadProjViewsToDelete); bool IsChangesSaved = false; try { List <Project> projsHasLeaders = LeadProjsLogic.OtherLeadOnProjExistance(projsToAdd); string projsHasLeadersString = ""; if (projsHasLeaders.Count > 0) { foreach (var projHasLeader in projsHasLeaders) { projsHasLeadersString += "- " + projHasLeader.ProjName + "\n"; } MessageBoxVM = new MessageBoxModel() { Message = "У проектов:\n\n" + projsHasLeadersString + " уже есть руководитель. Переназначить им руководителя?", Caption = LeaderView.Surname + " " + LeaderView.Name + " " + LeaderView.MiddleName + ":Руководимые проекты", Buttons = MessageBoxButton.YesNo }; if (MessageBoxVM.Result == MessageBoxResult.Yes) { IsChangesSaved = LeadProjsLogic.SetLeadProjectsToEmployee(leader, projsToAdd, projsToDelete); } else { IsChangesSaved = false; } } else { IsChangesSaved = LeadProjsLogic.SetLeadProjectsToEmployee(leader, projsToAdd, projsToDelete); } } catch (Exception ex) { MessageBoxVM = new MessageBoxModel() { Message = ErrorMessage.MakingMessageForMessageBox(ex), Caption = errCaption }; Log.WriteLogAsync(ex); } if (IsChangesSaved) { foreach (var leadProjView in leadProjViewsToAdd) { foreach (var eV in EmployeesViewModel.EmployeeViews) { eV.LeadProjViews.Remove(eV.LeadProjViews.FirstOrDefault(lPV => lPV.Id == leadProjView.Id)); } EmployeesViewModel.CurrentEmplView .LeadProjViews .Add(leadProjView); } foreach (var leadProjView in leadProjViewsToDelete) { EmployeesViewModel.CurrentEmplView .LeadProjViews .Remove(leadProjView); } foreach (var leadProjView in LeadProjViews) { leadProjView.IsChanged = false; leadProjView.BackupClear(); } IsLeadProjViewsChanged = false; } } }