public void ImportModel(string dsiFilename, string dsmFilename, bool autoPartition, bool recordChanges, bool compressDsmFile, IProgress <ProgressInfo> progress) { string processStep = "Builder"; Assembly assembly = Assembly.GetEntryAssembly(); DsiModel dsiModel = new DsiModel(processStep, assembly); dsiModel.Load(dsiFilename, progress); IImportPolicy importPolicy; if (!File.Exists(dsmFilename) || !recordChanges) { importPolicy = new CreateNewModelPolicy(_dsmModel); } else { importPolicy = new UpdateExistingModelPolicy(_dsmModel, dsmFilename, _actionManager, progress); } DsmBuilder builder = new DsmBuilder(dsiModel, _dsmModel, importPolicy, autoPartition); builder.Build(progress); _actionStore.SaveToModel(); _dsmModel.SaveModel(dsmFilename, compressDsmFile, progress); }
protected override void Action() { bool secondFileIsOlder = _inputFile1.CreationTime < _inputFile2.CreationTime; FileInfo oldModelFile = secondFileIsOlder ? _inputFile1 : _inputFile2; FileInfo newModelFile = secondFileIsOlder ? _inputFile2 : _inputFile1; DsiModel oldModel = new DsiModel("Diff", new List <string>(), Assembly.GetExecutingAssembly()); DsiModel newModel = new DsiModel("Diff", new List <string>(), Assembly.GetExecutingAssembly()); oldModel.Load(oldModelFile.FullName, this); newModel.Load(newModelFile.FullName, this); DsiModelCompare comparer = new DsiModelCompare(oldModel, newModel, this); comparer.Compare(); if (comparer.AreIdentical) { Logger.LogUserMessage("Models are identical"); } else { Logger.LogUserMessage("Models are different"); ReportDeltas(comparer); } }
protected override void Action() { DsiModel model = new DsiModel("Transformer", Assembly.GetExecutingAssembly()); model.Load(_transformerSettings.InputFilename, this); Transformation.Transformer transformer = new Transformation.Transformer(model, _transformerSettings, this); transformer.Transform(); model.Save(_transformerSettings.OutputFilename, _transformerSettings.CompressOutputFile, this); }
public void LoadingAndSavedModelRestoresThePreviousState() { string filename = "temp.dsi"; DsiModel dataModel1 = new DsiModel("Test", Assembly.GetExecutingAssembly()); IDsiElement consumer = dataModel1.AddElement("consumerName", "class", "consumerSource"); Assert.IsNotNull(consumer); IDsiElement provider1 = dataModel1.AddElement("provider1Name", "class", "provider1Source"); Assert.IsNotNull(provider1); IDsiElement provider2 = dataModel1.AddElement("provider2Name", "class", "provider2Source"); Assert.IsNotNull(provider2); dataModel1.AddRelation(consumer.Name, provider1.Name, "relationType2", 2, "context"); dataModel1.AddRelation(consumer.Name, provider2.Name, "relationType3", 3, "context"); dataModel1.Save(filename, false, null); DsiModel dataModel2 = new DsiModel("Test", Assembly.GetExecutingAssembly()); dataModel2.Load(filename, null); Assert.AreEqual(dataModel1.TotalElementCount, dataModel2.TotalElementCount); List <IDsiElement> dataModel1Elements = dataModel1.GetElements().ToList(); List <IDsiElement> dataModel2Elements = dataModel2.GetElements().ToList(); for (int elementIndex = 0; elementIndex < dataModel1.TotalElementCount; elementIndex++) { Assert.AreEqual(dataModel1Elements[elementIndex].Id, dataModel2Elements[elementIndex].Id); Assert.AreEqual(dataModel1Elements[elementIndex].Name, dataModel2Elements[elementIndex].Name); Assert.AreEqual(dataModel1Elements[elementIndex].Type, dataModel2Elements[elementIndex].Type); Assert.AreEqual(dataModel1Elements[elementIndex].Source, dataModel2Elements[elementIndex].Source); Assert.AreEqual(dataModel1.GetRelationsOfConsumer(dataModel1Elements[elementIndex].Id).Count, dataModel2.GetRelationsOfConsumer(dataModel1Elements[elementIndex].Id).Count); List <IDsiRelation> dataModel1Relations = dataModel1.GetRelationsOfConsumer(dataModel1Elements[elementIndex].Id).ToList(); List <IDsiRelation> dataModel2Relations = dataModel2.GetRelationsOfConsumer(dataModel2Elements[elementIndex].Id).ToList(); for (int relationIndex = 0; relationIndex < dataModel1.GetRelationsOfConsumer(dataModel1Elements[elementIndex].Id).Count; relationIndex++) { Assert.AreEqual(dataModel1Relations[relationIndex].ConsumerId, dataModel2Relations[relationIndex].ConsumerId); Assert.AreEqual(dataModel1Relations[relationIndex].ProviderId, dataModel2Relations[relationIndex].ProviderId); Assert.AreEqual(dataModel1Relations[relationIndex].Type, dataModel2Relations[relationIndex].Type); Assert.AreEqual(dataModel1Relations[relationIndex].Weight, dataModel2Relations[relationIndex].Weight); } } }