コード例 #1
0
        public Model.ProvisioningTemplate ToProvisioningTemplate(System.IO.Stream template, String identifier)
        {
            ITemplateFormatter formatter = this.GetSpecificFormatterInternal(ref template);

            formatter.Initialize(this._provider);
            return(formatter.ToProvisioningTemplate(template, identifier));
        }
コード例 #2
0
        public override void SaveAs(ProvisioningHierarchy hierarchy, string uri, ITemplateFormatter formatter = null)
        {
            if (hierarchy == null)
            {
                throw new ArgumentNullException(nameof(hierarchy));
            }

            if (uri == null)
            {
                throw new ArgumentNullException(nameof(uri));
            }

            if (formatter == null)
            {
                formatter = XMLPnPSchemaFormatter.LatestFormatter;
            }
            formatter.Initialize(this);

            var stream = ((IProvisioningHierarchyFormatter)formatter).ToFormattedHierarchy(hierarchy);

            this.Connector.SaveFileStream(uri, stream);

            if (this.Connector is ICommitableFileConnector)
            {
                ((ICommitableFileConnector)this.Connector).Commit();
            }
        }
コード例 #3
0
        public System.IO.Stream ToFormattedTemplate(Model.ProvisioningTemplate template)
        {
            ITemplateFormatter formatter = XMLPnPSchemaFormatter.LatestFormatter;

            formatter.Initialize(this._provider);
            return(formatter.ToFormattedTemplate(template));
        }
コード例 #4
0
        public bool IsValid(System.IO.Stream template)
        {
            ITemplateFormatter formatter = this.GetSpecificFormatterInternal(ref template);

            formatter.Initialize(this._provider);
            return(formatter.IsValid(template));
        }
コード例 #5
0
        public void CanSerializeDomainObjectWithJsonFormatter()
        {
            using (Stream _formattedTemplate = new FileStream(this._provisioningTemplatePath5, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                ITemplateFormatter formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(this._provisioningTemplatePath5NamespaceURI);

                XMLTemplateProvider xmlProvider =
                    new XMLFileSystemTemplateProvider(
                        String.Format(@"{0}\..\..\Resources",
                                      AppDomain.CurrentDomain.BaseDirectory),
                        "Templates");

                formatter.Initialize(xmlProvider);
                var _pt = formatter.ToProvisioningTemplate(_formattedTemplate, "WORKFLOWSITE");

                JsonTemplateProvider jsonProvider =
                    new JsonFileSystemTemplateProvider(
                        String.Format(@"{0}\..\..\Resources",
                                      AppDomain.CurrentDomain.BaseDirectory),
                        "Templates");

                jsonProvider.SaveAs(_pt, @"c:\temp\ProvisioningSchema-2015-05-ReferenceSample-01.json");

                var _ptBack = jsonProvider.GetTemplate(@"c:\temp\ProvisioningSchema-2015-05-ReferenceSample-01.json");

                Assert.IsTrue(_pt.Equals(_ptBack));
            }
        }
コード例 #6
0
        public void CanSerializeDomainObjectToXML5ByFileLink()
        {
            using (Stream _formattedTemplate = new FileStream(this._provisioningTemplatePath5, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                ITemplateFormatter formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(this._provisioningTemplatePath5NamespaceURI);

                XMLTemplateProvider provider =
                    new XMLFileSystemTemplateProvider(
                        String.Format(@"{0}\..\..\..\Resources",
                                      AppDomain.CurrentDomain.BaseDirectory),
                        "Templates");

                formatter.Initialize(provider);
                var _pt = formatter.ToProvisioningTemplate(_formattedTemplate, "WORKFLOWSITE");

                var _formattedTemplateBack = formatter.ToFormattedTemplate(_pt);

                Assert.IsTrue(formatter.IsValid(_formattedTemplateBack));
            }
        }
コード例 #7
0
        public override ProvisioningHierarchy GetHierarchy(string uri)
        {
            if (uri == null)
            {
                throw new ArgumentNullException(nameof(uri));
            }

            ProvisioningHierarchy result = null;

            var stream = this.Connector.GetFileStream(uri);

            if (stream != null)
            {
                var formatter = new XMLPnPSchemaFormatter();

                ITemplateFormatter specificFormatter = formatter.GetSpecificFormatterInternal(ref stream);
                specificFormatter.Initialize(this);
                result = ((IProvisioningHierarchyFormatter)specificFormatter).ToProvisioningHierarchy(stream);
            }

            return(result);
        }
コード例 #8
0
        public ProvisioningHierarchy GetHierarchy()
        {
            ProvisioningHierarchy result = null;

            var openXmlConnection = this.Connector as OpenXMLConnector;
            var fileName          = openXmlConnection.Info.Properties.TemplateFileName;

            if (!String.IsNullOrEmpty(fileName))
            {
                var stream = this.Connector.GetFileStream(fileName);

                if (stream != null)
                {
                    var formatter = new XMLPnPSchemaFormatter();

                    ITemplateFormatter specificFormatter = formatter.GetSpecificFormatterInternal(ref stream);
                    specificFormatter.Initialize(this);
                    result = ((IProvisioningHierarchyFormatter)specificFormatter).ToProvisioningHierarchy(stream);
                }
            }
            return(result);
        }