/// <summary> /// Extracts the primary media-adress from toc And inserts it into the target string. /// </summary> /// <param name="fromTocString"> /// The toc string from which the primary media-address will be extracted. /// </param> /// <param name="toTargetStr"> /// The string into which the primary media-adress will be inserted. /// </param> public static string UpdatePrimaryAccessLink(string itemID, string fromToc, string toTarget) { ImportOptions directories = new UserSettingsService().GetImportOptions(); string objectName = GetObjectName(fromToc); string toc = fromToc.ToLower(); if (toc.Contains("arcmusicmp3") || toc.Contains("arcaudiomp3")) return new Mp3Album(directories.AudioProjectDirectory + "\\" + objectName, toc.Contains("arcmusicmp3") ? "ArcMusicMP3" : "ArcAudioMP3").InsertPrimaryAccessLink(fromToc, toTarget); if (toc.Contains("myvideo")) return new M4vAlbum(directories.AudioProjectDirectory + "\\" + objectName).InsertPrimaryAccessLink(fromToc, toTarget); if (toc.Contains("mydocs")) return new PdfCollection(directories.DocumentProjectDirectory + "\\" + objectName).InsertPrimaryAccessLink(fromToc, toTarget); return toTarget; }
/// <summary> /// Builds the actual query. /// </summary> /// <param name="queryString"> /// queryString == null | "" : Rebuilds actual query from stored query state parameters or returns the default query. /// queryString != null : Builds a new query from queryString and stores it in query state parameters. /// </param> /// <param name="stateType"> /// stateType == ListViewState : (Re)builds actual query for ListView. /// stateType == BrowseViewState : (Re)builds actual query for BrowseView. /// stateType == ItemViewState : (Re)builds actual query for SingleItemView. /// </param> /// <returns> /// Actual query. /// </returns> public static RQquery GetQueryFromState(string queryString, UserState.States stateType) { RQquery query = null; state = (ViewState)UserState.Get(stateType); if (state == null) { if (string.IsNullOrEmpty(queryString)) query = new RQquery("$recent$recent additions", "recent"); else query = new RQquery(queryString); state = new ViewState(stateType); //, queryString); state.query = query; //state.Save(); } else { string querytest; UserSettingsService us = new UserSettingsService(); query = (RQquery)state.query; if (! string.IsNullOrEmpty(queryString) && queryString.StartsWith("$") && queryString.LastIndexOf("$") > 1) querytest = queryString.Substring(0, queryString.LastIndexOf("$")+1) + query.QueryString; else querytest = query.QueryString; //if ( (! string.IsNullOrEmpty(queryString) && querytest != queryString) // || (query.QueryExternal == "" && us.GetIncludeExternal() == true) // || (query.QueryExternal != "" && us.GetIncludeExternal() == false) ) //{ // query = new RQquery(! string.IsNullOrEmpty(queryString) ? queryString : query.QueryString); // query.QueryExternal = us.GetIncludeExternal() == true ? "003" : ""; // state.query = query; // //state.Save(); //} if (!string.IsNullOrEmpty(queryString) && querytest != queryString) query = new RQquery(! string.IsNullOrEmpty(queryString) ? queryString : query.QueryString); query.QueryExternal = us.GetIncludeExternal() == true ? "003" : ""; state.query = query; } return query; }
/// <summary> /// Checks and updates the digital object directory and writes changes to the toc and signature strings. /// Checks and updates concern the directory name and the names of media and access structure files (f. e. playlist files) /// </summary> /// <param name="itemId"> /// Id of the RQItem record of the digital object. /// </param> /// <param name="tocString"> /// The toc string (normally stored in the RQItem record of the digital object). /// </param> /// <param name="signatureStr"> /// The signature string (normally stored in the RQItem record of the digital object).</param> /// <param name="itemDescriptors"> /// A string dictionary of field names (keys) and field contents (values) of the RQItem record of the digital object. /// </param> /// <returns> /// True if update was successful. /// Updated values in tocString and signatureStr. /// </returns> public static bool UpdateDigitalObjectDirectory(string itemId, ref string tocString, ref string signatureStr, StringDictionary itemDescriptors) { bool result = false; string toc = tocString.ToLower(); if (toc.Contains("$$toc$$=")) { ImportOptions directories = new UserSettingsService().GetImportOptions(); string objectName = GetObjectName(tocString); if (toc.Contains("arcmusicmp3") || toc.Contains("arcaudiomp3") ) return new Mp3Album(directories.AudioProjectDirectory + "\\" + objectName.Replace("XXXXX_", ""), toc.Contains("arcmusicmp3") ? "ArcMusicMP3" : "ArcAudioMP3").BindTo(itemId, ref tocString, ref signatureStr, itemDescriptors); if (toc.Contains("myvideo")) return new M4vAlbum(directories.VideoProjectDirectory + "\\" + objectName).BindTo(itemId, ref tocString, ref signatureStr, itemDescriptors); if (toc.Contains("mydocs")) return new PdfCollection(directories.DocumentProjectDirectory + "\\" + objectName).BindTo(itemId, ref tocString, ref signatureStr, itemDescriptors); } return result; }