Example #1
0
        public static void ConvertCurrentWorkspaceToDesignScriptAndSave(string filePathBase, DynamoModel currentDynamoModel)
        {
            try
            {
                var workspace = currentDynamoModel.CurrentWorkspace;

                var libCore         = currentDynamoModel.EngineController.LibraryServices.LibraryManagementCore;
                var libraryServices = new LibraryCustomizationServices(currentDynamoModel.PathManager);
                var nameProvider    = new NamingProvider(libCore, libraryServices);
                var controller      = currentDynamoModel.EngineController;
                var resolver        = currentDynamoModel.CurrentWorkspace.ElementResolver;
                var namingProvider  = new NamingProvider(controller.LibraryServices.LibraryManagementCore, libraryServices);

                var result = NodeToCodeCompiler.NodeToCode(libCore, workspace.Nodes, workspace.Nodes, namingProvider);
                NodeToCodeCompiler.ReplaceWithShortestQualifiedName(
                    controller.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes, resolver);
                var codegen = new ProtoCore.CodeGenDS(result.AstNodes);
                var ds      = codegen.GenerateCode();

                var dsPath = filePathBase + ".ds";
                if (File.Exists(dsPath))
                {
                    File.Delete(dsPath);
                }
                File.WriteAllText(dsPath, ds);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Assert.Inconclusive("The current workspace could not be converted to Design Script.");
            }
        }
        private void ConvertNodesToCodeImpl(ConvertNodesToCodeCommand command)
        {
            var libServices    = new LibraryCustomizationServices(pathManager);
            var namingProvider = new NamingProvider(EngineController.LibraryServices.LibraryManagementCore, libServices);

            CurrentWorkspace.ConvertNodesToCodeInternal(EngineController, namingProvider);

            CurrentWorkspace.HasUnsavedChanges = true;
        }
Example #3
0
        private void ConvertNodesToCodeImpl(ConvertNodesToCodeCommand command)
        {
            var libServices = new LibraryCustomizationServices(pathManager);
            var namingProvider = new NamingProvider(EngineController.LibraryServices.LibraryManagementCore, libServices);
            CurrentWorkspace.ConvertNodesToCodeInternal(EngineController, namingProvider);

            CurrentWorkspace.HasUnsavedChanges = true;
        }
        public void TestNameProvider()
        {
            var core = CurrentDynamoModel.EngineController.LibraryServices.LibraryManagementCore;
            var libraryServices = new LibraryCustomizationServices(CurrentDynamoModel.PathManager);
            var nameProvider = new NamingProvider(core, libraryServices);

            ProtoCore.Type t;
            string name = string.Empty;
            int typeID = -1;

            t = ProtoCore.TypeSystem.BuildPrimitiveTypeObject(ProtoCore.PrimitiveType.Integer);
            name = nameProvider.GetTypeDependentName(t);
            Assert.AreEqual("num", name); 

            t = ProtoCore.TypeSystem.BuildPrimitiveTypeObject(ProtoCore.PrimitiveType.Double);
            name = nameProvider.GetTypeDependentName(t);
            Assert.AreEqual("num", name); 

            t = ProtoCore.TypeSystem.BuildPrimitiveTypeObject(ProtoCore.PrimitiveType.String);
            name = nameProvider.GetTypeDependentName(t);
            Assert.AreEqual("str", name);

            typeID = core.TypeSystem.GetType("Autodesk.DesignScript.Geometry.Point");
            t = core.TypeSystem.BuildTypeObject(typeID);
            name = nameProvider.GetTypeDependentName(t);
            Assert.AreEqual("point", name);

            typeID = core.TypeSystem.GetType("Autodesk.DesignScript.Geometry.BoundingBox");
            t = core.TypeSystem.BuildTypeObject(typeID);
            name = nameProvider.GetTypeDependentName(t);
            Assert.AreEqual("boundingBox", name);

            t = new ProtoCore.Type();
            t.Name = "DummyClassForTest";
            t.UID = -1;
            name = nameProvider.GetTypeDependentName(t);
            Assert.IsTrue(string.IsNullOrEmpty(name));
        } 
Example #5
0
        private void ConvertCurrentWorkspaceToDesignScriptAndSave(string filePathBase)
        {
            try
            {


                var workspace = CurrentDynamoModel.CurrentWorkspace;

                var libCore = CurrentDynamoModel.EngineController.LibraryServices.LibraryManagementCore;
                var libraryServices = new LibraryCustomizationServices(CurrentDynamoModel.PathManager);
                var nameProvider = new NamingProvider(libCore, libraryServices);
                var controller = CurrentDynamoModel.EngineController;
                var resolver = CurrentDynamoModel.CurrentWorkspace.ElementResolver;
                var namingProvider = new NamingProvider(controller.LibraryServices.LibraryManagementCore, libraryServices);

                var result = NodeToCodeCompiler.NodeToCode(libCore, workspace.Nodes, workspace.Nodes, namingProvider);
                NodeToCodeCompiler.ReplaceWithShortestQualifiedName(
                        controller.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes, resolver);
                var codegen = new ProtoCore.CodeGenDS(result.AstNodes);
                var ds = codegen.GenerateCode();

                var dsPath = filePathBase + ".ds";
                if (File.Exists(dsPath))
                {
                    File.Delete(dsPath);
                }
                File.WriteAllText(dsPath, ds);
            }
            catch
            {
                Assert.Inconclusive("The current workspace could not be converted to Design Script.");
            }
        }