void InitializeSelectedDB() { Descriptors = new ObservableCollection<DescriptorViewModel>(); foreach (var descriptor in SelectedDatabase.Descriptors) { var binObjectViewModel = new DescriptorViewModel(descriptor, this); Descriptors.Add(binObjectViewModel); } SelectedDescriptor = Descriptors.FirstOrDefault(); foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.InputDescriptors = new ObservableCollection<DescriptorViewModel>(); foreach (var inputBase in descriptorViewModel.Descriptor.XBase.InputXBases) { foreach (var gkDatabase in DescriptorsManager.GkDatabases) { var inputDescriptor = gkDatabase.Descriptors.FirstOrDefault(x => x.XBase.BaseUID == inputBase.BaseUID); if (inputDescriptor != null) { var inputDescriptorViewModel = Descriptors.FirstOrDefault(x => x.Descriptor.XBase.BaseUID == inputDescriptor.XBase.BaseUID); descriptorViewModel.InputDescriptors.Add(inputDescriptorViewModel); } } } } foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.OutputDescriptors = new ObservableCollection<DescriptorViewModel>(); foreach (var outputBase in descriptorViewModel.Descriptor.XBase.OutputXBases) { foreach (var gkDatabase in DescriptorsManager.GkDatabases) { var outputDescriptor = gkDatabase.Descriptors.FirstOrDefault(x => x.XBase.BaseUID == outputBase.BaseUID); if (outputDescriptor != null) { var outputDescriptorViewModel = Descriptors.FirstOrDefault(x => x.Descriptor.XBase.BaseUID == outputDescriptor.XBase.BaseUID); descriptorViewModel.OutputDescriptors.Add(outputDescriptorViewModel); } } } } foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.InitializeLogic(); } }
void InitializeSelectedDB() { Descriptors = new ObservableCollection<DescriptorViewModel>(); foreach (var descriptor in SelectedDatabase.Descriptors) { var descriptorViewModel = new DescriptorViewModel(descriptor, this); Descriptors.Add(descriptorViewModel); } SelectedDescriptor = Descriptors.FirstOrDefault(); foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.InputDescriptors = new ObservableCollection<DescriptorViewModel>(); if (descriptorViewModel.Descriptor.GKBase.InputDescriptors != null) foreach (var inputBase in descriptorViewModel.Descriptor.GKBase.InputDescriptors) { var inputDescriptor = SelectedDatabase.Descriptors.FirstOrDefault(x => x.GKBase.UID == inputBase.UID); if (inputDescriptor != null) { var inputDescriptorViewModel = Descriptors.FirstOrDefault(x => x.Descriptor.GKBase.UID == inputDescriptor.GKBase.UID); if (inputDescriptorViewModel != null) descriptorViewModel.InputDescriptors.Add(inputDescriptorViewModel); else { descriptorViewModel.IsFormulaInvalid = true; MessageBoxService.ShowError("Отсутствует ссылка на входную зависимость" + descriptorViewModel.Descriptor.GKBase.GKDescriptorNo + " " + descriptorViewModel.Descriptor.GKBase.PresentationName); } } } } foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.OutputDescriptors = new ObservableCollection<DescriptorViewModel>(); if (descriptorViewModel.Descriptor.GKBase.InputDescriptors != null) foreach (var outputBase in descriptorViewModel.Descriptor.GKBase.OutputDescriptors) { var outputDescriptor = SelectedDatabase.Descriptors.FirstOrDefault(x => x.GKBase.UID == outputBase.UID); if (outputDescriptor != null) { var outputDescriptorViewModel = Descriptors.FirstOrDefault(x => x.Descriptor.GKBase.UID == outputDescriptor.GKBase.UID); if (outputDescriptorViewModel != null) descriptorViewModel.OutputDescriptors.Add(outputDescriptorViewModel); else { descriptorViewModel.IsFormulaInvalid = true; MessageBoxService.ShowError("Отсутствует ссылка на выходную зависимость" + descriptorViewModel.Descriptor.GKBase.GKDescriptorNo + " " + descriptorViewModel.Descriptor.GKBase.PresentationName); } } } } foreach (var descriptorViewModel in Descriptors) { descriptorViewModel.InitializeLogic(); } var stringBuilder = new StringBuilder(); foreach (var descriptorViewModel in Descriptors) { if (descriptorViewModel.IsFormulaInvalid) { stringBuilder.AppendLine(descriptorViewModel.Descriptor.GKBase.GKDescriptorNo + " " + descriptorViewModel.Descriptor.GKBase.PresentationName); } descriptorViewModel.InitializeLogic(); } if(stringBuilder.Length > 0) { MessageBoxService.ShowWarning(stringBuilder.ToString(), "В результате компиляции возникли ошибки"); } }