コード例 #1
0
        public DataObject CreateAndLinkToFolder(String folderPath)
        {
            // create a contentless document to link into folder
            String objectName = "linkedDocument" + System.DateTime.Now.Ticks;

            Console.WriteLine("Constructed document " + objectName);
            String         repositoryName   = DefaultRepository;
            ObjectIdentity sampleObjId      = new ObjectIdentity(repositoryName);
            DataObject     sampleDataObject = new DataObject(sampleObjId, "dm_document");

            sampleDataObject.Properties.Set("object_name", objectName);

            // add the folder to link to as a ReferenceRelationship
            ObjectPath            objectPath               = new ObjectPath(folderPath);
            ObjectIdentity        sampleFolderIdentity     = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();

            sampleFolderRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target     = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            sampleDataObject.Relationships.Add(sampleFolderRelationship);

            // create a new document linked into parent folder
            OperationOptions operationOptions = null;
            DataPackage      dataPackage      = new DataPackage(sampleDataObject);
            DataPackage      resultPackage    = objectService.Create(dataPackage, operationOptions);
            DataObject       resultDataObject = resultPackage.DataObjects[0];

            return(resultDataObject);
        }
コード例 #2
0
        public DataPackage CMSUploadMethod(string dmsfolderpath, string localfilepath)
        {
            if (!File.Exists(localfilepath))
            {
                throw new Exception("Test file: " + localfilepath + " does not exist");
            }
            ObjectIdentity objIdentity = new ObjectIdentity(DefaultRepository);
            DataObject     dataObject  = new DataObject(objIdentity, "dm_document"); //eifx_deliverable_doc // ecs_correspondence
            PropertySet    properties  = dataObject.Properties;

            properties.Set("object_name", "MyImage" + System.DateTime.Now.Ticks);
            properties.Set("title", "MyImage");
            properties.Set("a_content_type", "gif");
            dataObject.Contents.Add(new FileContent(Path.GetFullPath(localfilepath), "gif"));


            ObjectPath            objectPath               = new ObjectPath(dmsfolderpath);
            ObjectIdentity        sampleFolderIdentity     = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();

            sampleFolderRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target     = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            dataObject.Relationships.Add(sampleFolderRelationship);


            OperationOptions operationOptions = null;
            DataPackage      dataPackage      = objectService.Create(new DataPackage(dataObject), operationOptions);
            string           object_          = dataPackage.DataObjects[0].Identity.GetValueAsString();

            return(dataPackage);
        }
コード例 #3
0
        private void createTestVirtualDocument()
        {
                // create a new DataObject to use as the parent node
                ObjectIdentity emptyIdentity = new ObjectIdentity(DefaultRepository);
                DataObject parentDO = new DataObject(emptyIdentity);
                parentDO.Type = "dm_document";
                PropertySet parentProperties = new PropertySet();
                parentProperties.Set("object_name", SampleContentManager.testVdmObjectName);
                parentDO.Properties = parentProperties;

                // link into a folder
                ObjectPath objectPath = new ObjectPath(SampleContentManager.sourcePath);
                ObjectIdentity sampleFolderIdentity = new ObjectIdentity(objectPath, DefaultRepository);
                ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();
                sampleFolderRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
                sampleFolderRelationship.Target = sampleFolderIdentity;
                sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
                parentDO.Relationships.Add(sampleFolderRelationship);

                // get id of document to use for first child node
                ObjectIdentity child0Id = new ObjectIdentity();
                child0Id.RepositoryName = DefaultRepository;
                child0Id.Value = new Qualification(SampleContentManager.gifImageQualString);

                // get id of document to use for second child node
                ObjectIdentity child1Id = new ObjectIdentity();
                child1Id.RepositoryName = DefaultRepository;
                child1Id.Value = new Qualification(SampleContentManager.gifImage1QualString);

                ObjectIdentitySet childNodes = new ObjectIdentitySet();
                childNodes.AddIdentity(child0Id);
                childNodes.AddIdentity(child1Id);

                virtualDocumentServiceDemo.AddChildNodes(parentDO, childNodes);
        }
コード例 #4
0
        public DataPackage UpdateRelinkFolder(ObjectIdentity docId,
                                              ObjectIdentity sourceFolderId,
                                              ObjectIdentity targetFolderId)
        {
            DataObject docDataObj = new DataObject(docId, "dm_document");

            // add the source folder as a parent relationship of the document
            ReferenceRelationship removeRelationship = new ReferenceRelationship();

            removeRelationship.TargetRole = Relationship.ROLE_PARENT;
            removeRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            removeRelationship.Target     = sourceFolderId;
            docDataObj.Relationships.Add(removeRelationship);

            // specify that the folder is to be unlinked
            removeRelationship.IntentModifier = RelationshipIntentModifier.REMOVE;
            Console.WriteLine("Set to remove relationship from parent folder " + sourceFolderId.GetValueAsString());

            // add the folder into which to link document
            ReferenceRelationship addRelationship = new ReferenceRelationship();

            addRelationship.TargetRole = Relationship.ROLE_PARENT;
            addRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            addRelationship.Target     = targetFolderId;
            docDataObj.Relationships.Add(addRelationship);
            Console.WriteLine("Set relationship to parent folder " + targetFolderId.GetValueAsString());

            OperationOptions operationOptions = null;

            return(objectService.Update(new DataPackage(docDataObj), operationOptions));
        }
コード例 #5
0
        public void TestCreateFolderAndLinkedDoc()
        {
            Console.WriteLine("\nTesting creation of new folder and document linked to it.");
            try
            {
                DataPackage resultDataPackage = objectServiceDemo.CreateFolderAndLinkedDoc();
                DataObject  resultDataObject  = resultDataPackage.DataObjects[0];

                // get the parent relationship to the folder object
                ReferenceRelationship refRelationship = (ReferenceRelationship)resultDataObject.Relationships[0];
                String         folderId       = refRelationship.Target.Value.ToString();
                ObjectIdentity folderIdentity = new ObjectIdentity(new ObjectId(folderId), DefaultRepository);

                Console.WriteLine("Created document " + resultDataObject.Identity.GetValueAsString() + " in folder " + folderId);

                // add the folder identity to the collection of stuff to delete after running the sample
                sampleContentManager.AddCreatedObjects(folderIdentity);
            }
            catch (FaultException <SerializableException> ex)
            {
                Console.WriteLine(String.Format("Got FaultException[{0}] with message: {1}\n", ex.Detail, ex.Message));
            }
            catch (Exception exx)
            {
                Console.WriteLine(exx.StackTrace);
            }
            finally
            {
                sampleContentManager.DeleteCreatedObjects();
            }
        }
コード例 #6
0
        public void TestGetObjectFilterRelationParentOnly()
        {
            Console.WriteLine("\nTesting get object using filter to get only parent relationships.");
            sampleContentManager.CreateDemoObjects();
            ObjectIdentity objIdentity =
                new ObjectIdentity(new Qualification(SampleContentManager.gifImageQualString),
                                   objectServiceDemo.DefaultRepository);

            try
            {
                DataObject dataObject = objectServiceDemo.GetObjectFilterRelationsParentOnly(objIdentity);
                Console.WriteLine("Got object with relationships" + objIdentity.GetValueAsString());
                ReferenceRelationship parentFolderReference = (ReferenceRelationship)dataObject.Relationships[0];
                Console.WriteLine("Related folder is " + parentFolderReference.Target.GetValueAsString());
            }
            catch (FaultException <SerializableException> ex)
            {
                Console.WriteLine(String.Format("Got FaultException[{0}] with message: {1}\n", ex.Detail, ex.Message));
            }
            catch (Exception exx)
            {
                Console.WriteLine(exx.StackTrace);
            }
            finally
            {
                sampleContentManager.DeleteTestCabinet();
            }
        }
コード例 #7
0
        public DataObject RetrieveVdmInfo(ObjectIdentity objectIdentity, Boolean isSnapshot)
        {
            VdmRetrieveProfile retrieveProfile = new VdmRetrieveProfile();

            retrieveProfile.IsShouldFollowAssembly = isSnapshot;
            retrieveProfile.Binding = "CURRENT";
            OperationOptions options = new OperationOptions();

            options.VdmRetrieveProfile = retrieveProfile;

            DataObject          resultDO      = virtualDocumentService.Retrieve(objectIdentity, options);
            List <Relationship> relationships = resultDO.Relationships;

            Console.WriteLine("Total relationships in virtual document = " + relationships.Count);

            int i = 0;

            foreach (Relationship r in relationships)
            {
                Console.WriteLine();
                ReferenceRelationship refRel = (ReferenceRelationship)r;
                Console.WriteLine("Child node " + i++ + ": " + refRel.Target.GetValueAsString());
                PropertySet nodeProperties = refRel.RelationshipProperties;

                List <Property> properties = nodeProperties.Properties;
                foreach (Property p in properties)
                {
                    Console.Write(p.Name + ": ");
                    Console.WriteLine(p.GetValueAsString());
                }
            }
            return(resultDO);
        }
コード例 #8
0
        /// <summary>
        /// Nhập đối tượng là audio
        /// </summary>
        /// <param name="_page"></param>
        /// <param name="_shape"></param>
        private void ShapeIsAudio(PageLayer _page, pp.Shape _shape, EAnimation _animation, string _idShape)
        {
            EAudioElement eAudio = new EAudioElement();

            eAudio.Name       = "Audio";
            eAudio.ID         = _idShape;
            eAudio.Width      = _shape.Width * Utils.tlw;
            eAudio.Height     = _shape.Height * Utils.tlh;
            eAudio.Top        = _shape.Top * Utils.tlh;
            eAudio.Left       = _shape.Left * Utils.tlw;
            eAudio.Angle      = _shape.Rotation;
            eAudio.ZOder      = (int)_shape.ZOrderPosition;
            eAudio.Animations = _animation;
            //Lấy file audio trong gói sử dụng openxml
            var lstPic = Utils.slidePart.Slide.Descendants <DocumentFormat.OpenXml.Presentation.Picture>().Select(p => p);

            P.Picture                     audioTag      = GetPictureTag(lstPic, _shape.Id.ToString());
            var                           audioFromFile = audioTag.NonVisualPictureProperties.ApplicationNonVisualDrawingProperties.Descendants <D.AudioFromFile>().Select(p => p);
            ReferenceRelationship         relationship  = Utils.slidePart.GetReferenceRelationship(audioFromFile.First().Link.Value);
            DataPartReferenceRelationship data          = (DataPartReferenceRelationship)relationship;
            string                        pathAudio     = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(data.Uri.ToString()));

            Utils.CopyStream(data.DataPart.GetStream(), pathAudio);
            eAudio.AudioFileName      = new Core.Model.Media.Audio();
            eAudio.AudioFileName.Path = pathAudio;
            _page.Children.Add(eAudio);
        }
コード例 #9
0
        public DataObject CreateSnapshotDemo(String vdmQualString, String snapshotName, String sourcePath)
        {
            // create ObjectIdentity of existing virtual document
            ObjectIdentity testVdmId = new ObjectIdentity();

            testVdmId.RepositoryName = DefaultRepository;
            testVdmId.Value          = new Qualification(vdmQualString);

            // create a new DataObject to use for the snapshot
            ObjectIdentity emptyIdentity = new ObjectIdentity(DefaultRepository);
            DataObject     snapshotDO    = new DataObject(emptyIdentity);

            snapshotDO.Type = "dm_document";
            PropertySet parentProperties = new PropertySet();

            parentProperties.Set("object_name", snapshotName);
            snapshotDO.Properties = parentProperties;

            // link into a folder
            ObjectPath            objectPath               = new ObjectPath(sourcePath);
            ObjectIdentity        sampleFolderIdentity     = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();

            sampleFolderRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target     = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            snapshotDO.Relationships.Add(sampleFolderRelationship);

            // options are reserved for future use so just pass null
            OperationOptions options = null;

            return(virtualDocumentService.CreateSnapshot(testVdmId, snapshotDO, options));
        }
コード例 #10
0
 private void setSampleFolderRelationship()
 {
     ObjectPath objectPath = new ObjectPath(sourcePath);
     ObjectIdentity sampleFolderIdentity = new ObjectIdentity(objectPath, serviceDemo.DefaultRepository);
     sampleFolderRelationship = new ReferenceRelationship();
     sampleFolderRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
     sampleFolderRelationship.Target = sampleFolderIdentity;
     sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
 }
コード例 #11
0
        private void setSampleFolderRelationship()
        {
            ObjectPath     objectPath           = new ObjectPath(sourcePath);
            ObjectIdentity sampleFolderIdentity = new ObjectIdentity(objectPath, serviceDemo.DefaultRepository);

            sampleFolderRelationship            = new ReferenceRelationship();
            sampleFolderRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target     = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
        }
コード例 #12
0
        /// <summary>
        /// Crea un oggetto ReferenceRelationship adatto per rimuovere un link tra un oggetto ed il folder specificato
        /// </summary>
        /// <param name="folderIdentity">identifica il folder parent</param>
        /// <returns></returns>
        public static ReferenceRelationship createRemoveParentFolder(ObjectIdentity folderIdentity)
        {
            ReferenceRelationship removeRelationship = new ReferenceRelationship();

            removeRelationship.TargetRole = Relationship.ROLE_PARENT;
            //removeRelationship.intentModifierSpecified = true;
            removeRelationship.Name           = Relationship.RELATIONSHIP_FOLDER;
            removeRelationship.Target         = folderIdentity;
            removeRelationship.IntentModifier = RelationshipIntentModifier.REMOVE;
            return(removeRelationship);
        }
コード例 #13
0
        /// <summary>
        /// Crea un oggetto ReferenceRelationship adatto per creare un link tra un oggetto ed il folder specificat
        /// </summary>
        /// <param name="folderIdentity">identifica il folder parent</param>
        /// <returns></returns>
        public static ReferenceRelationship createParentFolderRelationship(ObjectIdentity folderIdentity)
        {
            ReferenceRelationship addRelationship = new ReferenceRelationship();

            addRelationship.TargetRole = Relationship.ROLE_PARENT;
            addRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;

            // i due seguenti secondo la doc. non sarebbero necessari, ma...
            //addRelationship.intentModifierSpecified = true;
            addRelationship.IntentModifier = RelationshipIntentModifier.ADD;

            addRelationship.Target = folderIdentity;
            return(addRelationship);
        }
コード例 #14
0
        /// <summary>
        /// Chèn Flash như video
        /// </summary>
        /// <param name=""></param>
        /// <param name="_shape"></param>
        /// <param name="_flashTag"></param>
        private void VideoAsFlash(PageLayer _page, pp.Shape _shape, ReferenceRelationship _rls, EAnimation _animation, string _idShape)
        {
            EFlashControl eFlash = new EFlashControl();

            eFlash.Name       = "Flash";
            eFlash.ID         = _idShape;
            eFlash.Angle      = _shape.Rotation;
            eFlash.Height     = _shape.Height * Utils.tlh;
            eFlash.Left       = _shape.Left * Utils.tlw;
            eFlash.Width      = _shape.Width * Utils.tlw;
            eFlash.Top        = _shape.Top * Utils.tlh;
            eFlash.ZOder      = _shape.ZOrderPosition;
            eFlash.Animations = _animation;
            //Lấy file flash trong gói sử dụng openxml
            eFlash.Source      = new Core.Model.Media.Flash();
            eFlash.Source.Path = _rls.Uri.AbsolutePath;
            _page.Children.Add(eFlash);
        }
コード例 #15
0
        private void createTestVirtualDocument()
        {
            // create a new DataObject to use as the parent node
            ObjectIdentity emptyIdentity = new ObjectIdentity(DefaultRepository);
            DataObject     parentDO      = new DataObject(emptyIdentity);

            parentDO.Type = "dm_document";
            PropertySet parentProperties = new PropertySet();

            parentProperties.Set("object_name", SampleContentManager.testVdmObjectName);
            parentDO.Properties = parentProperties;

            // link into a folder
            ObjectPath            objectPath               = new ObjectPath(SampleContentManager.sourcePath);
            ObjectIdentity        sampleFolderIdentity     = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();

            sampleFolderRelationship.Name       = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target     = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            parentDO.Relationships.Add(sampleFolderRelationship);

            // get id of document to use for first child node
            ObjectIdentity child0Id = new ObjectIdentity();

            child0Id.RepositoryName = DefaultRepository;
            child0Id.Value          = new Qualification(SampleContentManager.gifImageQualString);

            // get id of document to use for second child node
            ObjectIdentity child1Id = new ObjectIdentity();

            child1Id.RepositoryName = DefaultRepository;
            child1Id.Value          = new Qualification(SampleContentManager.gifImage1QualString);

            ObjectIdentitySet childNodes = new ObjectIdentitySet();

            childNodes.AddIdentity(child0Id);
            childNodes.AddIdentity(child1Id);

            virtualDocumentServiceDemo.AddChildNodes(parentDO, childNodes);
        }
コード例 #16
0
        /// <summary>
        /// Nhập đối tượng là video
        /// </summary>
        /// <param name="_page"></param>
        /// <param name="_shape"></param>
        private void ShapeIsVideo(PageLayer _page, pp.Shape _shape, EAnimation _animation, string _idShape)
        {
            var lstPic = Utils.slidePart.Slide.Descendants <DocumentFormat.OpenXml.Presentation.Picture>().Select(p => p);

            P.Picture             videoTag      = GetPictureTag(lstPic, _shape.Id.ToString());
            var                   videoFromFile = videoTag.NonVisualPictureProperties.ApplicationNonVisualDrawingProperties.Descendants <D.VideoFromFile>().Select(p => p);
            ReferenceRelationship relationship  = Utils.slidePart.GetReferenceRelationship(videoFromFile.First().Link.Value);

            if (videoTag.NonVisualPictureProperties.NonVisualDrawingProperties.HyperlinkOnClick == null)
            {
                VideoAsFlash(_page, _shape, relationship, _animation, _idShape);
            }
            else
            {
                EVideoPlayer eVideoPlayer = new EVideoPlayer();
                eVideoPlayer.Name       = "Video";
                eVideoPlayer.ID         = _idShape;
                eVideoPlayer.Angle      = _shape.Rotation;
                eVideoPlayer.Width      = _shape.Width * Utils.tlw;
                eVideoPlayer.Height     = _shape.Height * Utils.tlh;
                eVideoPlayer.Top        = _shape.Top * Utils.tlh;
                eVideoPlayer.Left       = _shape.Left * Utils.tlw;
                eVideoPlayer.ZOder      = _shape.ZOrderPosition;
                eVideoPlayer.Animations = _animation;
                //Lấy file video trong gói sử dụng openxml
                DataPartReferenceRelationship data = (DataPartReferenceRelationship)relationship;
                string pathVideo = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(data.Uri.ToString()));
                Utils.CopyStream(data.DataPart.GetStream(), pathVideo);
                eVideoPlayer.Source      = new Core.Model.Media.Video();
                eVideoPlayer.Source.Path = pathVideo;
                //Lấy avata video
                eVideoPlayer.ImageFirst = new Image();
                string      rId       = videoTag.BlipFill.Blip.Embed.Value;
                OpenXmlPart avtPart   = Utils.slidePart.GetPartById(rId);
                string      pathAvata = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(avtPart.Uri.ToString()));
                Utils.CopyStream(avtPart.GetStream(), pathAvata);
                eVideoPlayer.ImageFirst.Path = pathAvata;
                _page.Children.Add(eVideoPlayer);
            }
        }
コード例 #17
0
        public override string TransformText()
        {
            this.GenerationEnvironment = null;
            this.Write(" \r\n");
            this.Write("using DslModeling = global::Microsoft.VisualStudio.Modeling;\r\nusing DslEditorDiag" +
                       "rams = global::Tum.PDE.ToolFramework.Modeling.Diagrams;\r\n\r\n");

            #line 12 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            List <AttributedDomainElement> ruleOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnElementsDelete = new List <AttributedDomainElement>();

            List <AttributedDomainElement> ruleMappingOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnElementsDelete = new List <AttributedDomainElement>();
            foreach (DiagramClass diagram in this.MetaModel.AllDiagramClasses)
            {
                foreach (PresentationElementClass element in diagram.PresentationElements)
                {
                    if (element is RelationshipShapeClass)
                    {
                        RelationshipShapeClass shape = element as RelationshipShapeClass;
                        DomainRelationship     con   = shape.ReferenceRelationship;

                        if (con == null)
                        {
                            continue;
                        }

                        ruleOnElementsAdd.Add(con);
                        ruleOnLinksChange.Add(con);
                        ruleOnElementsDelete.Add(con);
                    }
                    else if (element is MappingRelationshipShapeClass)
                    {
                        MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
                        DomainClass domainClass             = shape.DomainClass;

                        ReferenceRelationship source = shape.Source;
                        ReferenceRelationship target = shape.Target;

                        if (domainClass != null && source != null && target != null)
                        {
                            if (source.Target.RolePlayer is DomainClass &&
                                target.Target.RolePlayer is DomainClass)
                            {
                                ruleMappingOnElementsAdd.Add(domainClass);
                                ruleMappingOnElementsAdd.Add(source);
                                ruleMappingOnElementsAdd.Add(target);

                                ruleMappingOnLinksChange.Add(source);
                                ruleMappingOnLinksChange.Add(target);

                                ruleMappingOnElementsDelete.Add(domainClass);
                                ruleMappingOnElementsDelete.Add(source);
                                ruleMappingOnElementsDelete.Add(target);
                            }
                        }
                    }
                }
            }

            MetaModel dm = this.MetaModel;


            #line default
            #line hidden
            this.Write("namespace ");

            #line 67 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n");

            #line 69 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            if (CodeGenerationUtilities.NeedsLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we need" +
                           " to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape cl" +
                           "ass.\r\n    /// </summary>\r\n");

            #line 77 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 81 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 82 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForRSShapes\r\n    {\r\n\t\t///" +
                           " <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic ");

            #line 90 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded() \r\n\t\t\t: base(");

            #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 98 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RS" +
                           "ShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }			
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 127 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSShape" +
                           "s\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tp" +
                           "ublic ");

            #line 135 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged() \r\n\t\t\t: base(");

            #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSSha" +
                           "pes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\t\t\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t///" +
                           " </summary>\r\n\t\t\tpublic ");

            #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded.");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted.");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes\r\n  " +
                           "  {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic" +
                           " ");

            #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 197 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes.Shap" +
                           "eDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 209 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n\t\r\n");

            #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }
            if (CodeGenerationUtilities.NeedsMappingLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t\r\n\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we n" +
                           "eed to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape" +
                           " class.\r\n    /// </summary>\r\n");

            #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes" +
                           "\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpu" +
                           "blic ");

            #line 239 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded() \r\n\t\t\t: base(");

            #line 240 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForMappingRSSh" +
                           "apes.RSShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 249 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 259 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 275 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleFor" +
                           "MappingRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// <" +
                           "/summary>\r\n\t\tpublic ");

            #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged() \r\n\t\t\t: base(");

            #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForMappi" +
                           "ngRSShapes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t/// <" +
                           "/summary>\r\n\t\t\tpublic ");

            #line 313 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded.");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted.");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 325 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 329 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 330 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 333 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForMappi" +
                           "ngRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summ" +
                           "ary>\r\n\t\tpublic ");

            #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 346 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForMappingRSShap" +
                           "es.ShapeDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 348 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 353 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 358 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n");

            #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }



            #line default
            #line hidden
            this.Write("}\r\n\r\n");
            return(this.GenerationEnvironment.ToString());
        }
コード例 #18
0
        public DataObject CreateSnapshotDemo(String vdmQualString, String snapshotName, String sourcePath)
        {
            // create ObjectIdentity of existing virtual document
            ObjectIdentity testVdmId = new ObjectIdentity();
            testVdmId.RepositoryName = DefaultRepository;
            testVdmId.Value = new Qualification(vdmQualString);

            // create a new DataObject to use for the snapshot
            ObjectIdentity emptyIdentity = new ObjectIdentity(DefaultRepository);
            DataObject snapshotDO = new DataObject(emptyIdentity);
            snapshotDO.Type = "dm_document";
            PropertySet parentProperties = new PropertySet();
            parentProperties.Set("object_name", snapshotName);
            snapshotDO.Properties = parentProperties;

            // link into a folder
            ObjectPath objectPath = new ObjectPath(sourcePath);
            ObjectIdentity sampleFolderIdentity = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();
            sampleFolderRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            snapshotDO.Relationships.Add(sampleFolderRelationship);

            // options are reserved for future use so just pass null
            OperationOptions options = null;
            return virtualDocumentService.CreateSnapshot(testVdmId, snapshotDO, options);
        }
コード例 #19
0
        public DataObject CreateAndLinkToFolder(String folderPath)
        {
            // create a contentless document to link into folder
            String objectName = "linkedDocument" + System.DateTime.Now.Ticks;
            Console.WriteLine("Constructed document " + objectName);
            String repositoryName = DefaultRepository;
            ObjectIdentity sampleObjId = new ObjectIdentity(repositoryName);
            DataObject sampleDataObject = new DataObject(sampleObjId, "dm_document");
            sampleDataObject.Properties.Set("object_name", objectName);

            // add the folder to link to as a ReferenceRelationship
            ObjectPath objectPath = new ObjectPath(folderPath);
            ObjectIdentity sampleFolderIdentity = new ObjectIdentity(objectPath, DefaultRepository);
            ReferenceRelationship sampleFolderRelationship = new ReferenceRelationship();
            sampleFolderRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
            sampleFolderRelationship.Target = sampleFolderIdentity;
            sampleFolderRelationship.TargetRole = Relationship.ROLE_PARENT;
            sampleDataObject.Relationships.Add(sampleFolderRelationship);

            // create a new document linked into parent folder
            OperationOptions operationOptions = null;
            DataPackage dataPackage = new DataPackage(sampleDataObject);
            DataPackage resultPackage = objectService.Create(dataPackage, operationOptions);
            DataObject resultDataObject = resultPackage.DataObjects[0];

            return resultDataObject;
        }
コード例 #20
0
        public DataPackage UpdateRelinkFolder(ObjectIdentity docId,
                                              ObjectIdentity sourceFolderId,
                                              ObjectIdentity targetFolderId)
        {
            DataObject docDataObj = new DataObject(docId, "dm_document");

            // add the source folder as a parent relationship of the document
            ReferenceRelationship removeRelationship = new ReferenceRelationship();
            removeRelationship.TargetRole = Relationship.ROLE_PARENT;
            removeRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
            removeRelationship.Target = sourceFolderId;
            docDataObj.Relationships.Add(removeRelationship);

            // specify that the folder is to be unlinked
            removeRelationship.IntentModifier = RelationshipIntentModifier.REMOVE;
            Console.WriteLine("Set to remove relationship from parent folder " + sourceFolderId.GetValueAsString());

            // add the folder into which to link document
            ReferenceRelationship addRelationship = new ReferenceRelationship();
            addRelationship.TargetRole = Relationship.ROLE_PARENT;
            addRelationship.Name = Relationship.RELATIONSHIP_FOLDER;
            addRelationship.Target = targetFolderId;
            docDataObj.Relationships.Add(addRelationship);
            Console.WriteLine("Set relationship to parent folder " + targetFolderId.GetValueAsString());

            OperationOptions operationOptions = null;
            return objectService.Update(new DataPackage(docDataObj), operationOptions);
        }
コード例 #21
0
        /// <summary>
        /// Consider two output types:
        /// .txt if pptx doesn't contain videos
        /// .zip if it contains videos (a .txt file + the video files)
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public async Task <Dictionary <int, string> > ProcessVideoParts(string source, MSOfficeJob job, string tempDirectory)
        {
            Dictionary <int, string> TextContent = new Dictionary <int, string>();
            int index = 1;

            using (PresentationDocument ppt = PresentationDocument.Open(source, false))
            {
                // Get the relationship ID of the first slide.
                PresentationPart   part     = ppt.PresentationPart;
                OpenXmlElementList slideIds = part.Presentation.SlideIdList.ChildElements;
                foreach (SlideId slideID in slideIds)
                {
                    //get the right content according to type. for now only text is getting through
                    string relId = slideID.RelationshipId;

                    // Get the slide part from the relationship ID.
                    SlidePart slide = (SlidePart)part.GetPartById(relId);

                    //extract the videos and put placeholders
                    IEnumerable <A.VideoFromFile> videos = slide.Slide.Descendants <A.VideoFromFile>();
                    foreach (A.VideoFromFile vid in videos)
                    {
                        string videoRelId         = vid.Link;
                        ReferenceRelationship rel = slide.GetReferenceRelationship(videoRelId);
                        Uri    uri        = rel.Uri;
                        var    filename   = uri.ToString().Split('/').Last();
                        var    s          = ppt.Package.GetPart(uri).GetStream();
                        byte[] videoBytes = null;
                        using (BinaryReader br = new BinaryReader(s))
                        {
                            videoBytes = br.ReadBytes((int)s.Length);
                        }
                        //write video to result directory
                        File.WriteAllBytes(Path.Combine(tempDirectory, filename), videoBytes);

                        //send to amara
                        string langauge = "en-us";
                        if (ppt.PackageProperties.Language != null)
                        {
                            langauge = ppt.PackageProperties.Language;
                        }

                        AmaraSubtitleJob vj = new AmaraSubtitleJob()
                        {
                            SubmitTime       = DateTime.Now,
                            FinishTime       = DateTime.Now,
                            Status           = JobStatus.Started,
                            MimeType         = "video/" + filename.Substring(filename.LastIndexOf('.') + 1), //define this properly
                            User             = job.User,
                            UserId           = job.UserId,
                            DownloadCounter  = 0,
                            FileContent      = videoBytes,
                            InputFileHash    = RoboBrailleProcessor.GetMD5Hash(videoBytes),
                            SubtitleFormat   = job.SubtitleFormat,
                            SubtitleLangauge = job.SubtitleLangauge,
                            FileName         = job.Id.ToString() + "-" + filename.Substring(0, filename.LastIndexOf('.')),
                            FileExtension    = filename.Substring(filename.LastIndexOf('.') + 1)
                        };

                        //retrieve the message from amara
                        byte[] filebytes     = null;
                        Guid   subtitleJobId = vcr.SubmitWorkItem(vj).Result;
                        while (vcr.GetWorkStatus(subtitleJobId) == 2)
                        {
                            await Task.Delay(2000);
                        }
                        filebytes = vcr.GetResultContents(subtitleJobId).getFileContents();
                        File.WriteAllBytes(Path.Combine(tempDirectory, filename.Substring(0, filename.LastIndexOf('.')) + vj.ResultFileExtension), filebytes);

                        slide.Slide.CommonSlideData.ShapeTree.AppendChild(
                            new ShapeProperties(
                                new TextBody(
                                    new A.Paragraph(
                                        new A.Run(
                                            new A.Text("Video file name = " + filename + " subtitle attached to video has id: " + vj.Id.ToString())
                                            )))));
                    }


                    // Build a StringBuilder object.
                    StringBuilder paragraphText = new StringBuilder();

                    // Get the inner text of the slide:
                    IEnumerable <A.Text> texts = slide.Slide.Descendants <A.Text>();
                    foreach (A.Text text in texts)
                    {
                        if (text.Text.Length > 1)
                        {
                            paragraphText.Append(text.Text + " ");
                        }
                        else
                        {
                            paragraphText.Append(text.Text);
                        }
                    }
                    string slideText = paragraphText.ToString();
                    TextContent.Add(index, slideText);
                    index++;
                }
                //until now there are: video files + subtitle files
                //at the end there will be: a txt file + video files + subtitle files (all zipped up)
            }
            return(TextContent);
        }
コード例 #22
0
        private void LinkDataObjectToFolder(DataObject dataObject, string folder)
        {
            // add the folder to link to as a ReferenceRelationship
            var objectPath = new ObjectPath(folder);
            var folderIdentity = new ObjectIdentity(objectPath, dfsConfiguration.Repository);

            var folderRelationship = new ReferenceRelationship
            {
                Name = Relationship.RELATIONSHIP_FOLDER,
                Target = folderIdentity,
                TargetRole = Relationship.ROLE_PARENT
            };

            dataObject.Relationships.Add(folderRelationship);
        }
コード例 #23
0
        /// <summary>
        /// Rimozione di un documento da un folder
        /// </summary>
        /// <param name="idProfile"></param>
        /// <param name="folder"></param>
        /// <returns></returns>
        public bool RemoveDocumentFromFolder(string idProfile, DocsPaVO.fascicolazione.Folder folder)
        {
            bool retValue = false;

            // Reperimento docNumber da idProfile
            logger.Debug("Reperimento docNumber da idProfile");
            string docNumber = DocsPaQueryHelper.getDocNumber(idProfile);

            bool isStampaRegistro = DocsPaQueryHelper.isStampaRegistroRepertorio(docNumber);

            try
            {
                logger.Debug("getDocumentoIdentityByDocNumber");
                ObjectIdentity documentIdentity = Dfs4DocsPa.getDocumentoIdentityByDocNumber(docNumber);

                if (isStampaRegistro)
                {
                    documentIdentity = Dfs4DocsPa.getDocumentoStampaRegistroIdentityByDocNumber(docNumber);
                }

                ObjectIdentity folderIdentity = null;

                // Verifica se l'id è relativo ad un fascicolo o a un sottofascicolo
                logger.Debug("Verifica se l'id è relativo ad un fascicolo o a un sottofascicolo");
                if (!DocsPaQueryHelper.isSottofascicolo(folder.systemID))
                {
                    folderIdentity = Dfs4DocsPa.getFascicoloIdentityBySystemId(folder.idFascicolo);
                }
                else
                {
                    folderIdentity = DctmServices.Dfs4DocsPa.getSottofascicoloIdentityById(folder.systemID);
                }

                logger.Debug("createRemoveParentFolder");
                ReferenceRelationship removeRelationship = DctmServices.DfsHelper.createRemoveParentFolder(folderIdentity);

                logger.Debug("updatedDoc.Relationships");
                DataObject updatedDoc = new DataObject(documentIdentity);
                updatedDoc.Relationships.Add(removeRelationship);

                DataPackage dp = new DataPackage(updatedDoc);

                logger.Debug("update");
                IObjectService objSrvc = DctmServiceFactory.GetServiceInstance <IObjectService>(UserManager.ImpersonateSuperUser());
                DataPackage    retDp   = objSrvc.Update(dp, null);

                retValue = (retDp.DataObjects.Count > 0);

                if (retValue)
                {
                    logger.Debug(string.Format("Documentum.RemoveDocumentFromFolder: rimosso documento con docnumber {0} dal sottofascicolo con id {0}", idProfile, folder.systemID));
                }
            }
            catch (Exception ex)
            {
                retValue = false;

                logger.Debug(string.Format("Errore in Documentum.RemoveDocumentFromFolder:\n{0}", ex.ToString()));
            }

            return(retValue);
        }
コード例 #24
0
        public void GenerateShapes(LibraryModelContext modelContext)
        {
            foreach (DiagramClass diagram in modelContext.DiagramClasses)
            {
                Dictionary <ShapeClass, List <ShapeClass> >             childParentMapping          = new Dictionary <ShapeClass, List <ShapeClass> >();
                Dictionary <DomainClass, List <EmbeddingRelationship> > embeddingChildParentMapping = new Dictionary <DomainClass, List <EmbeddingRelationship> >();

                foreach (PresentationElementClass presentationElement in diagram.PresentationElements)
                {
                    if (presentationElement is ShapeClass)
                    {
                        ShapeClass  shapeClass  = presentationElement as ShapeClass;
                        DomainClass domainClass = shapeClass.DomainClass;

                        if (domainClass == null)
                        {
                            continue;
                        }

                        if (shapeClass.Parent != null)
                        {
                            if (shapeClass.Parent.DomainClass == null)
                            {
                                continue;
                            }

                            if (!childParentMapping.ContainsKey(shapeClass.Parent))
                            {
                                childParentMapping.Add(shapeClass.Parent, new List <ShapeClass>());
                            }

                            childParentMapping[shapeClass.Parent].Add(shapeClass);
                        }

                        if (!embeddingChildParentMapping.ContainsKey(domainClass))
                        {
                            embeddingChildParentMapping.Add(domainClass, new List <EmbeddingRelationship>());
                        }
                        foreach (DomainRole rolesPlayed in domainClass.RolesPlayed)
                        {
                            if (rolesPlayed.Relationship.Target == rolesPlayed &&
                                rolesPlayed.Relationship is EmbeddingRelationship &&
                                rolesPlayed.Relationship.InheritanceModifier != InheritanceModifier.Abstract)
                            {
                                if (!embeddingChildParentMapping[domainClass].Contains(rolesPlayed.Relationship as EmbeddingRelationship))
                                {
                                    embeddingChildParentMapping[domainClass].Add(rolesPlayed.Relationship as EmbeddingRelationship);
                                }
                            }
                        }
                        if (embeddingChildParentMapping[domainClass].Count > 0)
                        {
                            IEnumerable <AttributedDomainElement> sortedByInheritanceRS = CodeGenerationUtilities.SortDomainClassesByInheritance(embeddingChildParentMapping[domainClass]);
                            embeddingChildParentMapping[domainClass].Clear();
                            foreach (EmbeddingRelationship r in sortedByInheritanceRS)
                            {
                                embeddingChildParentMapping[domainClass].Add(r);
                            }
                        }
                    }
                }
                foreach (PresentationElementClass presentationElement in diagram.PresentationElements)
                {
                    string baseClass             = "DslEditorDiagrams::NodeShape";
                    string className             = presentationElement.Name;
                    bool   hasBaseClass          = false;
                    InheritanceModifier modifier = presentationElement.InheritanceModifier;

                    if (!(presentationElement is ShapeClass))
                    {
                        baseClass = "DslEditorDiagrams::LinkShape";
                    }
                    else if (presentationElement is ShapeClass)
                    {
                        if ((presentationElement as ShapeClass).BaseShape != null)
                        {
                            ShapeClass s = (presentationElement as ShapeClass).BaseShape;
                            baseClass    = s.Namespace + "." + s.Name;
                            hasBaseClass = true;
                        }
                    }

                    if (presentationElement.GeneratesDoubleDerived)
                    {
                        className += "Base";
                        modifier   = InheritanceModifier.Abstract;
                    }



        #line default
        #line hidden

        #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("namespace ");


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Namespace));


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\r\n{\r\n\t/// <summary>\r\n    /// ");


        #line default
        #line hidden

        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(className));


        #line default
        #line hidden

        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(" class representing a Shape.\r\n    /// </summary>\r\n\t[DslModeling::DomainObjectId(\"" +
                               "");


        #line default
        #line hidden

        #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D")));


        #line default
        #line hidden

        #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\")]\r\n\t");


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier)));


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(modifier)));


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(" partial class ");


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(className));


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(" : ");


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));


        #line default
        #line hidden

        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\r\n\t\t/// <summary>\r\n\t\t/// ");


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(" domain class Id.\r\n\t\t/// </summary>\r\n\t\tpublic static readonly new global::System." +
                               "Guid DomainClassId = new System.Guid(\"");


        #line default
        #line hidden

        #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D")));


        #line default
        #line hidden

        #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\");\r\n");


        #line default
        #line hidden

        #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                    PushIndent("\t\t");
                    GenerateDomainClassConstructors(presentationElement, true);
                    PopIndent();


        #line default
        #line hidden

        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\t\t#endregion\r\n");


        #line default
        #line hidden

        #line 117 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                    PushIndent("\t\t");
                    foreach (DomainProperty property in presentationElement.Properties)
                    {
                        this.Write(DomainPropertyGenerator.Instance.GenerateDomainProperty(property));
                    }
                    PopIndent();

                    if (presentationElement is ShapeClass)
                    {
                        ShapeClass shapeClass = presentationElement as ShapeClass;
                        bool       bTopMost   = false;
                        if (shapeClass.Parent == null)
                        {
                            bTopMost = true;
                        }


        #line default
        #line hidden

        #line 131 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write("\t\t#region Shape Properties/Methods\r\n\t\t        /// <summary>\r\n        /// Gets if " +
                                   "this shape is a top most item.\r\n        /// </summary>\r\n        public override " +
                                   "bool IsTopMostItem \r\n\t\t{ \r\n\t\t\tget\r\n\t\t\t{\r\n\t\t\t\treturn ");


        #line default
        #line hidden

        #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(bTopMost.ToString().ToLower()));


        #line default
        #line hidden

        #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(@";
			}
		}
		
		        /// <summary>
        /// Gets the default size of the shape.
        /// </summary>
        public override DslEditorDiagrams::SizeD DefaultSize
        {
            get
            {
                return new DslEditorDiagrams::SizeD(");


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultWidth));


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(", ");


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultHeight));


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(@");
            }
        }
		
		 /// <summary>
        /// Gets the used defined resizing behaviour value.
        /// </summary>
        /// <returns>Resizing behaviour value.</returns>
        public override DslEditorDiagrams::ShapeResizingBehaviour GetResizingBehaviourValue()
		{
");


        #line default
        #line hidden

        #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                        if (shapeClass.IsFixedWidth && shapeClass.IsFixedHeight)
                        {
        #line default
        #line hidden

        #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Fixed;\r\n");


        #line default
        #line hidden

        #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }
                        else if (shapeClass.IsFixedWidth)
                        {
        #line default
        #line hidden

        #line 170 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedWidth;\r\n");


        #line default
        #line hidden

        #line 172 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }
                        else if (shapeClass.IsFixedHeight)
                        {
        #line default
        #line hidden

        #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedHeight;\r\n");


        #line default
        #line hidden

        #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }
                        else
                        {
        #line default
        #line hidden

        #line 182 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Normal;\r\n");


        #line default
        #line hidden

        #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(@"		}

        /// <summary>
        /// Gets the used defined movement behaviour value.
        /// </summary>
        /// <returns>Movement behaviour value.</returns>
        public override DslEditorDiagrams::ShapeMovementBehaviour GetMovementBehaviourValue()
		{
");


        #line default
        #line hidden

        #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                        if (shapeClass.IsRelativeChild)
                        {
                            if (shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionRelativeToParent)
                            {
        #line default
        #line hidden

        #line 200 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                                this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionRelativeToParent;\r\n");


        #line default
        #line hidden

        #line 202 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            }
                            else if (shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionOnEdgeOfParent)
                            {
        #line default
        #line hidden

        #line 206 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                                this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionOnEdgeOfParent;\r\n");


        #line default
        #line hidden

        #line 208 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            }
                        }
                        else
                        {
        #line default
        #line hidden

        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.Normal;\r\n");


        #line default
        #line hidden

        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }


        #line default
        #line hidden

        #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(@"		}

        /// <summary>
        /// Gets whether this shape is a relative child shape or not.
        /// </summary>
        /// <returns>True if this shape is a relative child shape. False otherwise</returns>
        public override bool GetIsRelativeChildShapeValue()
		{
			return "            );


        #line default
        #line hidden

        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.IsRelativeChild.ToString().ToLower()));


        #line default
        #line hidden

        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(@";
		}
		
        /// <summary>
        /// Gets whether this shape takes part in any relationship or not.
        /// </summary>
        /// <returns>True if this shape takes part in any relationship. False otherwise</returns>
        public override bool GetTakesPartInRelationshipValue()
		{
");


        #line default
        #line hidden

        #line 235 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                        if (hasBaseClass)
                        {
        #line default
        #line hidden

        #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                            this.Write("\t\t\tif( base.GetTakesPartInRelationshipValue() )\r\n\t\t\t\treturn true;\r\n\t\t\t\t\r\n");


        #line default
        #line hidden

        #line 242 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        }

                        bool takesPart = false;
                        foreach (PresentationElementClass pLink in diagram.PresentationElements)
                        {
                            if (pLink is RelationshipShapeClass)
                            {
                                RelationshipShapeClass rsShape = pLink as RelationshipShapeClass;
                                DomainRelationship     con     = rsShape.ReferenceRelationship;
                                if (con != null)
                                {
                                    if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con))
                                    {
                                        takesPart = true;
                                    }
                                }
                            }
                            else if (!takesPart && pLink is MappingRelationshipShapeClass)
                            {
                                MappingRelationshipShapeClass rsShape = pLink as MappingRelationshipShapeClass;
                                ReferenceRelationship         con     = rsShape.Source;
                                if (con != null)
                                {
                                    if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass))
                                    {
                                        takesPart = true;
                                    }
                                }

                                con = rsShape.Target;
                                if (con != null && !takesPart)
                                {
                                    if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass))
                                    {
                                        takesPart = true;
                                    }
                                }
                            }
                        }


        #line default
        #line hidden

        #line 270 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write("\t\t\treturn ");


        #line default
        #line hidden

        #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(takesPart.ToString().ToLower()));


        #line default
        #line hidden

        #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(";\r\n\t\t}\r\n\t\t#endregion\r\n");


        #line default
        #line hidden

        #line 274 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    }


        #line default
        #line hidden

        #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("\t}\r\n");


        #line default
        #line hidden

        #line 278 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                    // If this class is double-derived, generate the skeleton derived class (with just the
                    // constructors)
                    if (presentationElement.GeneratesDoubleDerived)
                    {
        #line default
        #line hidden

        #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write("\t\t\t\r\n\t/// <summary>\r\n    /// ");


        #line default
        #line hidden

        #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(" class representing a Shape.\r\n    /// </summary>\r\n\t");


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier)));


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(presentationElement.InheritanceModifier)));


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(" partial class ");


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(" : ");


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write("Base\r\n\t{\r\n\t\t#region Constructors\r\n");


        #line default
        #line hidden

        #line 290 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"

                        PushIndent("\t\t");
                        GenerateDomainClassConstructors(presentationElement, false);
                        PopIndent();


        #line default
        #line hidden

        #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                        this.Write("\t\t#endregion\r\n\t}\r\n");


        #line default
        #line hidden

        #line 297 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    }


        #line default
        #line hidden

        #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                    this.Write("}\r\n");


        #line default
        #line hidden

        #line 301 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
                }


        #line default
        #line hidden

        #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
            }


        #line default
        #line hidden

        #line 307 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt"
        }
コード例 #25
0
        /// <summary>
        /// Inserimento di un documento in un folder
        /// </summary>
        /// <param name="idProfile"></param>
        /// <param name="idFolder"></param>
        /// <returns></returns>
        public bool AddDocumentInFolder(string idProfile, string idFolder)
        {
            logger.Info("BEGIN");
            bool retValue = false;

            // Reperimento idfolder per il record di tipo "C" in docspa (root folder)
            idFolder = DocsPaQueryHelper.getIdFolderCType(idFolder);

            // Reperimento docNumber da idProfile
            string docNumber = DocsPaQueryHelper.getDocNumber(idProfile);

            //bool stampaRegistro = DocsPaQueryHelper.isStampaRegistro(docNumber);
            bool stampaRegistro = DocsPaQueryHelper.isStampaRegistroRepertorio(docNumber);

            try
            {
                IObjectService objectService = DctmServiceFactory.GetServiceInstance <IObjectService>(UserManager.ImpersonateSuperUser());

                // 1. recuperare il documento con tutti i link a folder attuali

                ObjectIdentity documentIdentity = Dfs4DocsPa.getDocumentoIdentityByDocNumber(docNumber);

                if (stampaRegistro)
                {
                    documentIdentity = Dfs4DocsPa.getDocumentoStampaRegistroIdentityByDocNumber(docNumber);
                }

                // 2. Creare il nuovo link al folder di classificazione
                ObjectIdentity folderIdentity = null;

                // Verifica se l'idFolder si riferisce ad un fascicolo o a un sottofascicolo
                if (!DocsPaQueryHelper.isSottofascicolo(idFolder))
                {
                    // Reperimento id del fascicolo dal folder (record tipo "C")
                    string tipoFascicolo;
                    string idFascicolo = DocsPaQueryHelper.getIdFascicoloFromFolder(idFolder, out tipoFascicolo);

                    folderIdentity = Dfs4DocsPa.getFascicoloIdentityBySystemId(idFascicolo);

                    //Effettuo un refresh dei permessi sul fascicolo per allineare le ACL con DOCUMENTUM
                    //Fascicolo fascicolo = DocsPaQueryHelper.getFascicolo(idFascicolo, this.InfoUtente);
                    //if (fascicolo != null)
                    //  RefreshAclFascicolo(fascicolo);
                }
                else
                {
                    folderIdentity = Dfs4DocsPa.getSottofascicoloIdentityById(idFolder);
                }

                ReferenceRelationship addRelationship = DfsHelper.createParentFolderRelationship(folderIdentity);
                //la aggiungeremo alla lista degli update nell'ultimo passo

                // 3. salvare
                DataObject updatedDoc = new DataObject(documentIdentity);
                updatedDoc.Relationships.Add(addRelationship);

                // 4. Allineamento ACL documento:
                //  per coerenza è necessario che, una volta che il documento
                //  viene inserito in un fascicolo, questo diventi visibile anche
                //  a tutti gli utenti che hanno la visibilità solo sul fascicolo e
                //  non sul documento
                this.UpdateAclDocumento(idProfile, docNumber);

                DataPackage dataPackage = new DataPackage(updatedDoc);
                dataPackage = objectService.Update(dataPackage, null);

                retValue = (dataPackage.DataObjects.Count > 0);

                if (retValue)
                {
                    logger.Debug(string.Format("Documentum.AddDocumentInFolder: inserito il documento con docnumber {0} nel folder con id {1}", idProfile, idFolder));
                }
            }
            catch (Exception ex)
            {
                retValue = false;

                logger.Debug(string.Format("Errore in Documentum.AddDocumentInFolder:\n{0}", ex.ToString()));
            }
            logger.Info("END");
            return(retValue);
        }