public NosologyViewForm(CWorkersKeeper workersKeeper, CNosology nosologyInfo, string defaultParentFolderName, string notEditableNosologyName) { InitializeComponent(); _workersKeeper = workersKeeper; _nosologyWorker = workersKeeper.NosologyWorker; if (!string.IsNullOrEmpty(notEditableNosologyName)) { textBoxNosologyName.ReadOnly = true; textBoxNosologyName.Text = notEditableNosologyName; } if (nosologyInfo == null) { _nosologyInfo = new CNosology(); Text = "Добавление новой нозологии"; AddAllParentNosologyesToComboBox(string.Empty); comboBoxParentNodeName.Text = defaultParentFolderName; } else { _nosologyInfo = new CNosology(nosologyInfo); Text = "Редактирование нозологии"; textBoxNosologyName.Text = _nosologyInfo.Name; AddAllParentNosologyesToComboBox(nosologyInfo.Name); if (nosologyInfo.IdParent != -1) { CNosology nosology = _nosologyWorker.GetById(nosologyInfo.IdParent); comboBoxParentNodeName.Text = nosology.Name; } } }
private string GetDifferenсesInNosologies() { CNosologyWorker ownNosologyWorker = _mainForm.WorkersKeeper.NosologyWorker; CNosologyWorker foreinNosologyWorker = _mainForm.ForeinWorkersKeeper.NosologyWorker; var ownNewInfo = new StringBuilder("\r\nНаша база содержит следуюущие уникальные нозологии:\r\n"); var diffInfo = new StringBuilder("\r\nСледующие нозологии имеют различия в типе или расположении:\r\n"); foreach (var ownNosology in ownNosologyWorker.NosologyList) { CNosology foreinNosology = foreinNosologyWorker.GetByGeneralData(ownNosology.Name); if (foreinNosology == null) { ownNewInfo.Append(ownNosology.Name + ", "); continue; } if (ownNosology.Type != foreinNosology.Type) { diffInfo.Append(ownNosology.Name + ", "); continue; } CNosology parentOwnNosology = ownNosology; CNosology parentForeinNosology = foreinNosology; while (parentOwnNosology.IdParent != -1 && parentForeinNosology.IdParent != -1) { parentOwnNosology = ownNosologyWorker.GetById(parentOwnNosology.IdParent); parentForeinNosology = foreinNosologyWorker.GetById(parentForeinNosology.IdParent); if (parentOwnNosology.Name != parentForeinNosology.Name) { break; } } if (parentOwnNosology.IdParent != -1 || parentForeinNosology.IdParent != -1) { diffInfo.Append(ownNosology.Name + ", "); } } var foreinNewInfo = new StringBuilder("\r\nВнешняя база содержит следуюущие уникальные нозологии:\r\n"); foreach (var foreinNosology in foreinNosologyWorker.NosologyList) { CNosology ownNosology = ownNosologyWorker.GetByGeneralData(foreinNosology.Name); if (ownNosology == null) { foreinNewInfo.Append(foreinNosology.Name + ", "); continue; } if (ownNosology.Type != foreinNosology.Type) { diffInfo.Append(foreinNosology.Name + ", "); } } string diffResult = string.Empty; if (ownNewInfo.ToString().EndsWith(", ")) { diffResult += ownNewInfo.ToString().Substring(0, ownNewInfo.Length - 2); } if (foreinNewInfo.ToString().EndsWith(", ")) { diffResult += foreinNewInfo.ToString().Substring(0, foreinNewInfo.Length - 2); } if (diffInfo.ToString().EndsWith(", ")) { diffResult += diffInfo.ToString().Substring(0, diffInfo.Length - 2); } return(diffResult); }