private static void load_metadata_template()
        {
            // Get the list of all projects
            DataSet projectsSet = Engine_Database.Get_All_Template_DefaultMetadatas(null);

            if (projectsSet != null)
            {
                if (templateList == null)
                {
                    templateList = new List <Template>();
                }
                else
                {
                    templateList.Clear();
                }

                if (defaultMetadataList == null)
                {
                    defaultMetadataList = new List <Default_Metadata>();
                }
                else
                {
                    defaultMetadataList.Clear();
                }

                // Add each default metadata set
                foreach (DataRow thisRow in projectsSet.Tables[0].Rows)
                {
                    string code        = thisRow["MetadataCode"].ToString();
                    string name        = thisRow["MetadataName"].ToString();
                    string description = thisRow["Description"].ToString();

                    defaultMetadataList.Add(new Default_Metadata(code, name, description));
                }

                // Add each project
                foreach (DataRow thisRow in projectsSet.Tables[1].Rows)
                {
                    string code        = thisRow["TemplateCode"].ToString();
                    string name        = thisRow["TemplateName"].ToString();
                    string description = thisRow["Description"].ToString();

                    templateList.Add(new Template(code, name, description));
                }
            }
        }
Example #2
0
        /// <summary> Returns the appropriate admin viewer, based on requst and system settings </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request  </param>
        /// <returns> Built admin viewer </returns>
        public static iMySobek_Admin_Viewer Get_AdminViewer(RequestCache RequestSpecificValues)
        {
            RequestSpecificValues.Tracer.Add_Trace("Admin_HtmlSubwriter.Get_AdminViewer", "Building the admin viewer object");
            switch (RequestSpecificValues.Current_Mode.Admin_Type)
            {
            case Admin_Type_Enum.Add_Collection_Wizard:
                return(new Add_Collection_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Aggregation_Single:
                return(new Aggregation_Single_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Aggregations_Mgmt:
                return(new Aggregations_Mgmt_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Home:
                return(new Home_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Builder_Status:
                return(new Builder_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Builder_Folder_Mgmt:
                return(new Builder_Folder_Mgmt_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Skins_Single:
                return(new Skin_Single_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Skins_Mgmt:
                return(new Skins_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Aliases:
                return(new Aliases_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.WebContent_Add_New:
                return(new WebContent_Add_New_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.WebContent_Mgmt:
                return(new WebContent_Mgmt_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.WebContent_History:
                return(new WebContent_History_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.WebContent_Single:
                return(new WebContent_Single_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.WebContent_Usage:
                return(new WebContent_Usage_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Wordmarks:
                return(new Wordmarks_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.URL_Portals:
                return(new Portals_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Users:
                return(new Users_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.User_Groups:
                return(new User_Group_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.User_Permissions_Reports:
                return(new Permissions_Reports_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.IP_Restrictions:
                return(new IP_Restrictions_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Thematic_Headings:
                return(new Thematic_Headings_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.TEI:
                return(new TEI_PlugIn_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Settings:
                return(new Settings_AdminViewer(RequestSpecificValues));

            case Admin_Type_Enum.Default_Metadata:
                if ((!String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.My_Sobek_SubMode)) && (RequestSpecificValues.Current_Mode.My_Sobek_SubMode.Length > 1))
                {
                    string project_code = RequestSpecificValues.Current_Mode.My_Sobek_SubMode.Substring(1);
                    RequestSpecificValues.Tracer.Add_Trace("AdminViewer_Factory.Get_AdminViewer", "Checking cache for valid project file");
                    if (RequestSpecificValues.Current_User != null)
                    {
                        SobekCM_Item projectObject = CachedDataManager.Retrieve_Project(RequestSpecificValues.Current_User.UserID, project_code, RequestSpecificValues.Tracer);
                        if (projectObject != null)
                        {
                            RequestSpecificValues.Tracer.Add_Trace("AdminViewer_Factory.Get_AdminViewer", "Valid default metadata set found in cache");
                            return(new Edit_Item_Metadata_MySobekViewer(projectObject, RequestSpecificValues));
                        }
                        else
                        {
                            if (Engine_Database.Get_All_Template_DefaultMetadatas(RequestSpecificValues.Tracer).Tables[0].Select("MetadataCode='" + project_code + "'").Length > 0)
                            {
                                RequestSpecificValues.Tracer.Add_Trace("AdminViewer_Factory.Get_AdminViewer", "Building default metadata set from (possible) PMETS");
                                string       pmets_file = UI_ApplicationCache_Gateway.Settings.Servers.Base_MySobek_Directory + "projects\\" + RequestSpecificValues.Current_Mode.My_Sobek_SubMode.Substring(1) + ".pmets";
                                SobekCM_Item pmets_item = File.Exists(pmets_file) ? SobekCM_Item.Read_METS(pmets_file) : new SobekCM_Item();
                                pmets_item.Bib_Info.Main_Title.Title = "Default metadata set for '" + project_code + "'";
                                pmets_item.Bib_Info.SobekCM_Type     = TypeOfResource_SobekCM_Enum.Project;
                                pmets_item.BibID            = project_code.ToUpper();
                                pmets_item.VID              = "00001";
                                pmets_item.Source_Directory = UI_ApplicationCache_Gateway.Settings.Servers.Base_MySobek_Directory + "projects\\";

                                RequestSpecificValues.Tracer.Add_Trace("AdminViewer_Factory.Get_AdminViewer", "Adding project file to cache");

                                CachedDataManager.Store_Project(RequestSpecificValues.Current_User.UserID, project_code, pmets_item, RequestSpecificValues.Tracer);

                                return(new Edit_Item_Metadata_MySobekViewer(pmets_item, RequestSpecificValues));
                            }
                        }
                    }
                }

                // If it made it here, it must be manage all the default metadatas
                return(new Default_Metadata_AdminViewer(RequestSpecificValues));
            }

            return(null);
        }