/// <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();
                }
            }
        }
Ejemplo n.º 2
0
            /// <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;
                }
            }