/// <summary> /// This function is called when RetrieveCampaignObject("VDB_", ..) /// is invoked. /// </summary> /// <param name="sender">Unused.</param> /// <param name="e">Supplies event data.</param> public static void CampaignDatabase_RetrieveItemModifyEvent(object sender, CampaignDatabase.RetrieveCampaignDatabaseEventArgs e) { if (!e.CampaignName.StartsWith("ItMod")) { return; } e.GFF = new byte[0]; if (ALFA.Shared.Modules.InfoStore.ModifiedGff.Keys.Contains(e.VarName)) { using (MemoryStream s = new MemoryStream()) { ALFA.Shared.Modules.InfoStore.ModifiedGff[e.VarName].Save(s); e.GFF = s.ToArray(); } } }
/// <summary> /// This function is called when RetrieveCampaignObject("VDB_", ..) /// is invoked. /// </summary> /// <param name="sender">Unused.</param> /// <param name="e">Supplies event data.</param> void CampaignDatabase_RetrieveCampaignDatabaseEvent(object sender, CampaignDatabase.RetrieveCampaignDatabaseEventArgs e) { // // Interested only in VDB_File_<Campaign>. // if (!e.CampaignName.StartsWith("File_")) { return; } string DirectoryName = e.CampaignName.Substring(5); if (!SystemInfo.IsSafeFileName(DirectoryName)) { return; } if (!SystemInfo.IsSafeFileName(e.VarName)) { return; } try { DirectoryName = DatabaseStoreDirectory + DirectoryName; string FileName = String.Format("{0}{1}{2}.GFF", DirectoryName, Path.DirectorySeparatorChar, e.VarName); if (!File.Exists(FileName)) { ALFA.Shared.Logger.Log("CampaignObjectFileStore.CampaignDatabase_RetrieveCampaignDatabaseEvent: No database {0} exists.", FileName); return; } e.GFF = File.ReadAllBytes(FileName); } catch (Exception ex) { ALFA.Shared.Logger.Log("CampaignObjectFileStore.CampaignDatabase_RetrieveCampaignDatabaseEvent({0}): Exception: {1}", DirectoryName, ex); return; } catch { return; } }