Пример #1
0
        private static Manifest GetVirtualManifest(TemplateKey templeteKey)
        {
            string content = @"
                                    {
                                        ""editWitoutPostback"": false,
                                        ""templates"": {
                                            ""{{templatekey}}"": {
                                                ""type"": ""single"", /* single or multiple*/
                                                ""title"": ""{{templatekey}}"",
                                                ""main"": {
                                                    ""template"": ""{{templatekey}}{{templateextention}}"",
                                                    ""schemaInTemplate"": false,
                                                    ""optionsInTemplate"": false,
                                                    ""clientSideData"": false
                                                }
                                            }
                                        }
                                    }
                                ";

            content = content.Replace("{{templatekey}}", templeteKey.ShortKey);
            content = content.Replace("{{templateextention}}", templeteKey.Extention);
            var manifest = JsonConvert.DeserializeObject <Manifest>(content);

            return(manifest);
        }
Пример #2
0
        internal static Manifest GetManifest(TemplateKey templateKey)
        {
            TemplateManifest templateManifest;
            var manifest = GetManifest(templateKey, out templateManifest);

            return(manifest);
        }
Пример #3
0
 public TemplateManifest GetTemplateManifest(TemplateKey templateKey)
 {
     if (Templates != null && Templates.ContainsKey(templateKey.ShortKey))
     {
         return(Templates[templateKey.ShortKey]);
     }
     return(null);
 }
Пример #4
0
        private static Manifest GetVirtualManifest(TemplateKey templeteKey)
        {
            /*
             * string content = @"
             *                      {
             *                          ""editWitoutPostback"": false,
             *                          ""templates"": {
             *                              ""{{templatekey}}"": {
             *                                  ""type"": ""single"",
             *                                  ""title"": ""{{templatekey}}"",
             *                                  ""main"": {
             *                                      ""template"": ""{{templatekey}}{{templateextention}}"",
             *                                      ""schemaInTemplate"": false,
             *                                      ""optionsInTemplate"": false,
             *                                      ""clientSideData"": false
             *                                  }
             *                              }
             *                          }
             *                      }
             *                  ";
             *
             * content = content.Replace("{{templatekey}}", templeteKey.ShortKey);
             * content = content.Replace("{{templateextention}}", templeteKey.Extention);
             * var manifest = JsonConvert.DeserializeObject<Manifest>(content);
             */
            var manifest = new Manifest();

            manifest.EditWitoutPostback = false;
            manifest.Templates          = new Dictionary <string, TemplateManifest>();
            manifest.Templates.Add(templeteKey.ShortKey, new TemplateManifest()
            {
                Type           = "single",
                Title          = templeteKey.ShortKey,
                ClientSideData = false,
                Main           = new TemplateFiles()
                {
                    Template          = templeteKey.ShortKey + templeteKey.Extention,
                    SchemaInTemplate  = false,
                    OptionsInTemplate = false
                }
            });
            return(manifest);
        }
Пример #5
0
        internal static Manifest GetManifest(TemplateKey templateKey, out TemplateManifest templateManifest)
        {
            templateManifest = null;
            if (templateKey == null)
            {
                return(null);
            }

            Manifest manifest;

            if (templateKey.Extention == "manifest")
            {
                manifest = GetFileManifest(templateKey.TemplateDir);
                //todo downgrade template directories that stop using manifests
            }
            else
            {
                //todo upgrade template directories that start using manifests
                //manifest = GetFileManifest(templateKey.TemplateDir);
                //if (manifest == null)
                //    manifest = GetVirtualManifest(templateKey);
                //else if (manifest.Templates == null)
                manifest = GetVirtualManifest(templateKey);
            }

            if (manifest != null && manifest.HasTemplates)
            {
                //store some info into the Manifest object and its templates for backlink reference
                manifest.ManifestDir = templateKey.TemplateDir;
                foreach (KeyValuePair <string, TemplateManifest> keyValuePair in manifest.Templates)
                {
                    keyValuePair.Value.SetSource(templateKey);
                }
                //get the requested template by Key
                templateManifest = manifest.GetTemplateManifest(templateKey);
            }
            return(manifest);
        }
Пример #6
0
 public void SetSource(TemplateKey templateKey)
 {
     ManifestFolderUri = templateKey.TemplateDir;
     Key = templateKey;
 }