public HttpResponseMessage ExportMSWord(MSWordSettingsModel exportSettings) { if (exportSettings == null) { throw new ArgumentNullException("model"); } ImplementationGuide ig = this.tdb.ImplementationGuides.Single(y => y.Id == exportSettings.ImplementationGuideId); ImplementationGuideGenerator generator = new ImplementationGuideGenerator(this.tdb, exportSettings.ImplementationGuideId, exportSettings.TemplateIds); string fileName = string.Format("{0}.docx", ig.GetDisplayName(true)); ExportSettings lConfig = new ExportSettings(); lConfig.Use(c => { c.GenerateTemplateConstraintTable = exportSettings.TemplateTables == TemplateTableOptions.ConstraintOverview || exportSettings.TemplateTables == TemplateTableOptions.Both; c.GenerateTemplateContextTable = exportSettings.TemplateTables == TemplateTableOptions.Context || exportSettings.TemplateTables == TemplateTableOptions.Both; c.GenerateDocTemplateListTable = exportSettings.DocumentTables == DocumentTableOptions.List || exportSettings.DocumentTables == DocumentTableOptions.Both; c.GenerateDocContainmentTable = exportSettings.DocumentTables == DocumentTableOptions.Containment || exportSettings.DocumentTables == DocumentTableOptions.Both; c.AlphaHierarchicalOrder = exportSettings.TemplateSortOrder == TemplateSortOrderOptions.AlphaHierarchically; c.DefaultValueSetMaxMembers = exportSettings.GenerateValuesets ? exportSettings.MaximumValuesetMembers : 0; c.GenerateValueSetAppendix = exportSettings.ValuesetAppendix; c.IncludeXmlSamples = exportSettings.IncludeXmlSample; c.IncludeChangeList = exportSettings.IncludeChangeList; c.IncludeTemplateStatus = exportSettings.IncludeTemplateStatus; c.IncludeNotes = exportSettings.IncludeNotes; c.SelectedCategories = exportSettings.SelectedCategories; }); if (exportSettings.ValueSetOid != null && exportSettings.ValueSetOid.Count > 0) { Dictionary <string, int> valueSetMemberMaximums = new Dictionary <string, int>(); for (int i = 0; i < exportSettings.ValueSetOid.Count; i++) { if (valueSetMemberMaximums.ContainsKey(exportSettings.ValueSetOid[i])) { continue; } valueSetMemberMaximums.Add(exportSettings.ValueSetOid[i], exportSettings.ValueSetMaxMembers[i]); } lConfig.ValueSetMaxMembers = valueSetMemberMaximums; } // Save the export settings as the default settings if (exportSettings.SaveAsDefaultSettings) { IGSettingsManager settingsManager = new IGSettingsManager(this.tdb, exportSettings.ImplementationGuideId); var settingsJson = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(exportSettings); settingsManager.SaveSetting(MSWordExportSettingsPropertyName, settingsJson); } generator.BuildImplementationGuide(lConfig); byte[] data = generator.GetDocument(); return(GetExportResponse(fileName, DOCX_MIME_TYPE, data)); }
public MSWordSettingsModel GetExportSettings(int implementationGuideId) { IGSettingsManager settingsManager = new IGSettingsManager(this.tdb, implementationGuideId); var settingsJson = settingsManager.GetSetting(MSWordExportSettingsPropertyName); if (!string.IsNullOrEmpty(settingsJson)) { var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); MSWordSettingsModel settings = serializer.Deserialize <MSWordSettingsModel>(settingsJson); return(settings); } return(null); }
private ExportSettingsModel GetLegacyMSWordExportSettings(IGSettingsManager igSettings, string newSettingsProperty) { string exportSettingsJson = igSettings.GetSetting(IGSettingsManager.SettingProperty.MSWordExportSettingsJson); ExportSettingsModel exportSettings; // If we have an old export settings format, convert it to the new one. if (!string.IsNullOrEmpty(exportSettingsJson)) { MSWordSettingsModel oldExportSettings = JsonConvert.DeserializeObject <MSWordSettingsModel>(exportSettingsJson); exportSettings = new ExportSettingsModel(); exportSettings.ExportFormat = ExportFormats.Microsoft_Word_DOCX; exportSettings.DocumentTables = oldExportSettings.DocumentTables; exportSettings.IncludeVocabulary = oldExportSettings.GenerateValuesets; exportSettings.ImplementationGuideId = oldExportSettings.ImplementationGuideId; exportSettings.IncludeChangeList = oldExportSettings.IncludeChangeList; exportSettings.IncludeNotes = oldExportSettings.IncludeNotes; exportSettings.IncludeTemplateStatus = oldExportSettings.IncludeTemplateStatus; exportSettings.IncludeXmlSample = oldExportSettings.IncludeXmlSample; exportSettings.IncludeInferred = oldExportSettings.Inferred; exportSettings.MaximumValueSetMembers = oldExportSettings.MaximumValuesetMembers; exportSettings.ParentTemplateIds = oldExportSettings.ParentTemplateIds != null ? oldExportSettings.ParentTemplateIds : new List <int>(); exportSettings.SelectedCategories = oldExportSettings.SelectedCategories; exportSettings.TemplateIds = oldExportSettings.TemplateIds != null ? oldExportSettings.TemplateIds : new List <int>(); exportSettings.TemplateSortOrder = oldExportSettings.TemplateSortOrder; exportSettings.TemplateTables = oldExportSettings.TemplateTables; exportSettings.ValueSetAppendix = oldExportSettings.ValuesetAppendix; exportSettings.ValueSetMaxMembers = oldExportSettings.ValueSetMaxMembers != null ? oldExportSettings.ValueSetMaxMembers : new List <int>(); exportSettings.ValueSetOid = oldExportSettings.ValueSetOid; // Save the converted/new settings format igSettings.SaveSetting(newSettingsProperty, JsonConvert.SerializeObject(exportSettings)); // Remove the old settings format igSettings.SaveSetting(IGSettingsManager.SettingProperty.MSWordExportSettingsJson, null); return(exportSettings); } return(null); }