/// <summary>
        /// Updates the template.
        /// </summary>
        private void UpdateTemplate()
        {
            string @string = StringUtil.GetString(new[] { Context.ClientPage.ClientRequest.Form["Active"] });
            string strB1 = Translate.Text("Add a new section");
            string strB2 = Translate.Text("Add a new field");
            TemplateDefinition templateDefinition = new TemplateDefinition()
                {
                    TemplateID =
                        StringUtil.GetString(new[] { Context.ClientPage.ClientRequest.Form["TemplateID"] })
                };
            string[] strArray =
                StringUtil.GetString(new[] { Context.ClientPage.ClientRequest.Form["Structure"] })
                          .Split(new[] { ',' });
            SectionDefinition sectionDefinition = null;
            foreach (string str1 in strArray)
            {
                string str2 = Context.ClientPage.ClientRequest.Form[str1 + "_section_name"];
                if (str2 != null)
                {
                    sectionDefinition = null;
                    string strA = StringUtil.GetString(new[] { str2 }).Trim();
                    if (!string.IsNullOrEmpty(strA) && string.Compare(strA, strB1, true) != 0)
                    {
                        sectionDefinition = new SectionDefinition()
                            {
                                Name = strA,
                                ControlID = str1,
                                SectionID =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_section_id"]
                                        }),
                                Deleted =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_section_deleted"]
                                        }),
                                Sortorder =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_section_sortorder"]
                                        })
                            };
                        templateDefinition.AddSection(sectionDefinition);
                        if (str1 == @string)
                            sectionDefinition.Active = true;
                    }
                }
                else if (sectionDefinition != null)
                {
                    string strA =
                        StringUtil.GetString(new[] { Context.ClientPage.ClientRequest.Form[str1 + "_field_name"] })
                                  .Trim();
                    if (!string.IsNullOrEmpty(strA) && string.Compare(strA, strB2, true) != 0)
                    {
                        FieldDefinition fieldDefinition = new FieldDefinition()
                            {
                                Name = strA,
                                ControlID = str1,
                                FieldID =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_id"]
                                        }),
                                Type =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_type"]
                                        }),
                                Source =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_source"]
                                        }),
                                Title =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_title"]
                                        }),
                                Description =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_description"]
                                        }),
                                IsUnversioned =
                                    !string.IsNullOrEmpty(
                                        Context.ClientPage.ClientRequest.Form[str1 + "_field_unversioned"])
                                        ? "1"
                                        : "0",
                                IsShared =
                                    !string.IsNullOrEmpty(Context.ClientPage.ClientRequest.Form[str1 + "_field_shared"])
                                        ? "1"
                                        : "0",
                                Deleted =
                                    !string.IsNullOrEmpty(Context.ClientPage.ClientRequest.Form[str1 + "_field_deleted"])
                                        ? "1"
                                        : "0",
                                Sortorder =
                                    StringUtil.GetString(new[]
                                        {
                                           Context.ClientPage.ClientRequest.Form[str1 + "_field_sortorder"]
                                        })
                            };
                        sectionDefinition.AddField(fieldDefinition);
                        if (str1 == @string)
                            fieldDefinition.Active = true;
                    }
                }
            }

            this.Definition = templateDefinition.ToXml();
        }
 /// <summary>
 /// Loads the section.
 /// </summary>
 /// <param name="template">The template.</param>
 /// <param name="section">The section.</param>
 private static void LoadSection(TemplateDefinition template,
                                 TemplateSectionItem section)
 {
     Assert.ArgumentNotNull((object)template, "template");
     Assert.ArgumentNotNull((object)section, "section");
     SectionDefinition sectionDefinition
         = new SectionDefinition()
             {
                 SectionID = section.ID.ToString(),
                 Name = section.Name,
                 Sortorder = section.Sortorder.ToString()
             };
     template.AddSection(sectionDefinition);
     foreach (TemplateFieldItem field in section.GetFields())
         TemplateBuilderForm.LoadField(sectionDefinition, field);
     sectionDefinition.Fields.Sort((IComparer)new FieldComparer());
 }
 /// <summary>
 /// Loads the template.
 /// </summary>
 /// <param name="templateItem">The template item.</param>
 /// <returns>
 /// The template.
 /// </returns>
 private static TemplateDefinition LoadTemplate(TemplateItem templateItem)
 {
     Assert.ArgumentNotNull((object)templateItem, "templateItem");
     TemplateDefinition template = new TemplateDefinition()
         {
             TemplateID = templateItem.ID.ToString(),
             DisplayName = templateItem.DisplayName
         };
     foreach (TemplateSectionItem section in templateItem.GetSections())
         TemplateBuilderForm.LoadSection(template, section);
     return template;
 }
 /// <summary>
 /// Fixups the sort order.
 /// </summary>
 /// <param name="template">The definition.</param>
 private static void FixupSortOrder(TemplateDefinition template)
 {
     TemplateBuilderForm.FixupSections(template.Sections);
     foreach (
         SectionDefinition section in
             template.Sections)
         TemplateBuilderForm.FixupFields(section);
 }