Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }