public void CreateStructType(string signature, string[] fieldTypes) { // Setup var sig = new Signature(signature); // Execute var t = TypeDefiner.CreateStructType(sig); // Verify Assert.That(t.IsSubclassOf(typeof(DValue)), Is.True); var fields = t.GetFields(); Assert.That(fields.Select(t1 => t1.FieldType.Name), Is.EqualTo(fieldTypes)); }
public void CreateDiagrams(List <string> files) { try { ChangedDiagramNames.Clear(); var xmiFiles = files.FindAll(a => Path.GetExtension(a) == ".xmi"); files.RemoveAll(a => Path.GetExtension(a) == ".xmi"); // Добавляем или заменяем xmi файлы var xmiFilesCount = xmiFiles.Count; for (var i = 0; i < xmiFilesCount; i++) { Image <Bgra, byte> image = null; var pathToXmi = xmiFiles[i]; var name = Path.GetFileNameWithoutExtension(pathToXmi); if (AllDiagrams.ContainsKey(name)) { // Если такая диаграмма уже существует var dialogResult = MessageBox.Show($"Диаграмма c именем {name} уже существует.\nПерезаписать ее?", "Верификация диаграмм UML", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.No) { continue; } else { image = AllDiagrams[name].Image; AllDiagrams.Remove(name); } } var pathToPng = files.Find(a => Path.GetFileNameWithoutExtension(a) == name); if (pathToPng != null) { image = new Image <Bgra, byte>(pathToPng); } files.Remove(pathToPng); var doc = new XmlDocument(); doc.Load(pathToXmi); var root = doc.DocumentElement; var type = TypeDefiner.DefineDiagramType(root); var diagram = new Diagram(name, root, image, type, doc); AllDiagrams.Add(name, diagram); NewDiagramAdded?.Invoke(name); ChangedDiagramNames.Add(name); } // Добавляем к xmi файлам новые рисунки var pngFilesCount = files.Count; for (var i = 0; i < pngFilesCount; i++) { var pathToFile = files[i]; var name = Path.GetFileNameWithoutExtension(pathToFile); if (AllDiagrams.ContainsKey(name)) { if (AllDiagrams[name].Image == null) { Image <Bgra, byte> image = new Image <Bgra, byte>(pathToFile); AllDiagrams[name].Image = image; AllDiagrams[name].Verificated = false; } else { var dialogResult = MessageBox.Show($"У диаграммы с именем {name} уже существует png файл.\nПерезаписать его?", "Верификация диаграмм UML", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.No) { continue; } else { Image <Bgra, byte> image = new Image <Bgra, byte>(pathToFile); AllDiagrams[name].Image = image; AllDiagrams[name].Verificated = false; } } ChangedDiagramNames.Add(name); } } if (ChangedDiagramNames.Count != 0) { SomethingChanged.Invoke(ChangedDiagramNames); } } catch (Exception ex) { MessageBox.Show($"Произошла ошибка в TypeDefinition: {ex.Message}", "Верификация диаграмм UML", MessageBoxButtons.OK, MessageBoxIcon.Error); } }