/// <summary>
 /// Scans the field.
 /// </summary>
 /// <param name="sectionItem">The section item.</param>
 /// <param name="field">The field.</param>
 /// <param name="result">The result.</param>
 private static void ScanField(TemplateSectionItem sectionItem,
                               FieldDefinition field, List<ScanResult> result)
 {
     Assert.ArgumentNotNull((object)sectionItem, "sectionItem");
     Assert.ArgumentNotNull((object)field, "field");
     Assert.ArgumentNotNull((object)result, "result");
     if (!(field.Deleted != "1") || string.IsNullOrEmpty(field.FieldID))
         return;
     bool shared = StringUtil.GetString(new[]
         {
             field.IsShared
         }) == "1";
     bool unversioned = StringUtil.GetString(new[]
         {
             field.IsUnversioned
         }) == "1";
     TemplateFieldItem field1 = sectionItem.GetField(ID.Parse(field.FieldID));
     if (field1 == null || field1.Shared == shared && field1.Unversioned == unversioned)
         return;
     Template template = TemplateManager.GetTemplate(sectionItem.Template.ID, sectionItem.Database);
     Assert.IsNotNull((object)template, typeof(Template));
     TemplateField field2 = template.GetField(field1.ID);
     Assert.IsNotNull((object)field2, typeof(TemplateField));
     result.Add(new TemplateBuilderForm.ScanResult(field2, field1.DisplayName, shared, unversioned));
 }
        /// <summary>
        /// Saves the field.
        /// </summary>
        /// <param name="sectionItem">The section item.</param>
        /// <param name="field">The field.</param>
        private static void SaveField(TemplateSectionItem sectionItem,
                                      FieldDefinition field)
        {
            Assert.ArgumentNotNull((object)sectionItem, "sectionItem");
            Assert.ArgumentNotNull((object)field, "field");
            TemplateFieldItem templateFieldItem = (TemplateFieldItem)null;
            if (!string.IsNullOrEmpty(field.FieldID))
                templateFieldItem = sectionItem.GetField(ID.Parse(field.FieldID));
            if (field.Deleted == "1")
            {
                if (templateFieldItem == null)
                    return;
                templateFieldItem.InnerItem.Recycle();
            }
            else
            {
                if (templateFieldItem == null)
                {
                    templateFieldItem = sectionItem.AddField(field.Name);
                    field.FieldID = templateFieldItem.ID.ToString();
                }

                templateFieldItem.InnerItem.Editing.BeginEdit();
                templateFieldItem.InnerItem.Name = StringUtil.GetString(new[] { field.Name });
                templateFieldItem.Type = StringUtil.GetString(new[] { field.Type });
                templateFieldItem.Source = StringUtil.GetString(new[] { field.Source });
                templateFieldItem.Title = StringUtil.GetString(new[] { field.Title });
                templateFieldItem.InnerItem["__Short description"] =
                    StringUtil.GetString(new[] { field.Description });
                templateFieldItem.InnerItem[TemplateFieldIDs.Unversioned] =
                    StringUtil.GetString(new[] { field.IsUnversioned }) == "1" ? "1" : string.Empty;
                templateFieldItem.InnerItem[TemplateFieldIDs.Shared] =
                    StringUtil.GetString(new[] { field.IsShared }) == "1" ? "1" : string.Empty;
                templateFieldItem.InnerItem.Appearance.Sortorder = MainUtil.GetInt(field.Sortorder, 0);
                templateFieldItem.InnerItem.Editing.EndEdit();
            }
        }