/// <summary> /// Loads the keynote data resources, either from the fictitious French/German database, or from a file. /// </summary> /// <param name="resourceReference">An ExternalResourceReference identifying which particular resource to load.</param> /// <param name="loadContent">An ExternalResourceLoadContent object that will be populated with load data by the /// server. There are different subclasses of ExternalResourceLoadContent for different ExternalResourceTypes.</param> private void LoadKeynoteDataResource(ExternalResourceReference resourceReference, ExternalResourceLoadContent loadContent) { KeyBasedTreeEntriesLoadContent kdrlc = (KeyBasedTreeEntriesLoadContent)loadContent; if (kdrlc == null) { throw new ArgumentException("Wrong type of ExternalResourceLoadContent (expecting a KeyBasedTreeEntriesLoadContent) for keynote data.", "loadContent"); } kdrlc.Reset(); // Either the ExternalResourceReference has a valid database key (German/French case) ... IDictionary <string, string> refMap = resourceReference.GetReferenceInformation(); if (refMap.ContainsKey(RefMapDBKeyEntry)) { try { KeynotesDatabase.LoadKeynoteEntries(refMap[RefMapDBKeyEntry], ref kdrlc); kdrlc.BuildEntries(); loadContent.LoadStatus = ExternalResourceLoadStatus.Success; } catch (ArgumentOutOfRangeException) { } catch (ArgumentNullException) { } } else { // ... OR it is a real file (all other cases). String serverKeynoteFilePath = GetFullServerKeynoteFilePath(resourceReference); bool doesReadingSucceed = KeynoteEntries.LoadKeynoteEntriesFromFile(serverKeynoteFilePath, kdrlc); if (doesReadingSucceed) { kdrlc.BuildEntries(); loadContent.LoadStatus = ExternalResourceLoadStatus.Success; } } }
public void LoadResource(Guid loadRequestId, ExternalResourceType resourceType, ExternalResourceReference resourceReference, ExternalResourceLoadContext loadContext, ExternalResourceLoadContent content) { KeyBasedTreeEntriesLoadContent kdrlc = (KeyBasedTreeEntriesLoadContent)content; string tableName = resourceReference.GetReferenceInformation()["TableName"]; DBUtils.GetAllDBItems(tableName).ForEach(item => { kdrlc.AddEntry(new KeynoteEntry(item.Key, item.ParentKey, item.Text)); }); kdrlc.BuildEntries(); kdrlc.LoadStatus = ExternalResourceLoadStatus.Success; return; }
private void LoadKeynoteDataResource(ExternalResourceReference resourceReference, ExternalResourceLoadContent loadContent) { try { KeyBasedTreeEntriesLoadContent entriesContent = (KeyBasedTreeEntriesLoadContent)loadContent; if (null == entriesContent) { throw new ArgumentException("Wrong type of ExternalResourceLoadContent (expecting a KeyBasedTreeEntriesLoadContent) for keynote data.", "loadContent"); } entriesContent.Reset(); IDictionary <string, string> refMap = resourceReference.GetReferenceInformation(); if (refMap.ContainsKey("VersionNumber") && refMap.ContainsKey("ProjectName")) { KeynoteDatabase.LoadKeynoteEntries(refMap, ref entriesContent); entriesContent.BuildEntries(); loadContent.LoadStatus = ExternalResourceLoadStatus.Success; } } catch (Exception ex) { string message = ex.Message; } }