static internal EventQueueConfiguration GetConfig()
        {
            EventQueueConfiguration config = (EventQueueConfiguration)DataCache.GetCache("EventQueueConfig");

            if ((config == null))
            {
                string filePath = Globals.HostMapPath + "EventQueue\\EventQueue.config";
                if (File.Exists(filePath))
                {
                    config = new EventQueueConfiguration();
                    config.Deserialize(FileSystemUtils.ReadFile(filePath));
                    //Set back into Cache
                    // DataCache.SetCache("EventQueueConfig", config, new CacheDependency(filePath));
                }
                else
                {
                    config = new EventQueueConfiguration();
                    config.PublishedEvents       = new Dictionary <string, PublishedEvent>();
                    config.EventQueueSubscribers = new Dictionary <string, SubscriberInfo>();
                    SubscriberInfo subscriber = new SubscriberInfo("DNN Core");
                    RegisterEventSubscription(config, "Application_Start", subscriber);
                    RegisterEventSubscription(config, "Application_Start_FirstRequest", subscriber);
                    SaveConfig(config, filePath);
                }
            }
            return(config);
        }
        internal static void SaveConfig(EventQueueConfiguration config, string filePath)
        {
            StreamWriter oStream = File.CreateText(filePath);

            oStream.WriteLine(config.Serialize());
            oStream.Close();
            //Set back into Cache
            //DataCache.SetCache("EventQueueConfig", config, new CacheDependency(filePath));
        }
 public static void RegisterEventSubscription(EventQueueConfiguration config, string eventname, SubscriberInfo subscriber)
 {
     PublishedEvent e = new PublishedEvent();
     e.EventName = eventname;
     e.Subscribers = subscriber.ID;
     config.PublishedEvents.Add(e.EventName, e);
     if (!config.EventQueueSubscribers.ContainsKey(subscriber.ID))
     {
         config.EventQueueSubscribers.Add(subscriber.ID, subscriber);
     }
 }
        public static void RegisterEventSubscription(EventQueueConfiguration config, string eventname, SubscriberInfo subscriber)
        {
            PublishedEvent e = new PublishedEvent();

            e.EventName   = eventname;
            e.Subscribers = subscriber.ID;
            config.PublishedEvents.Add(e.EventName, e);
            if (!config.EventQueueSubscribers.ContainsKey(subscriber.ID))
            {
                config.EventQueueSubscribers.Add(subscriber.ID, subscriber);
            }
        }
 internal static void SaveConfig(EventQueueConfiguration config, string filePath)
 {
     StreamWriter oStream = File.CreateText(filePath);
     oStream.WriteLine(config.Serialize());
     oStream.Close();
     //Set back into Cache
     //DataCache.SetCache("EventQueueConfig", config, new CacheDependency(filePath));
 }
 static internal EventQueueConfiguration GetConfig()
 {
     EventQueueConfiguration config = (EventQueueConfiguration)DataCache.GetCache("EventQueueConfig");
     if ((config == null))
     {
         string filePath = Globals.HostMapPath + "EventQueue\\EventQueue.config";
         if (File.Exists(filePath))
         {
             config = new EventQueueConfiguration();
             config.Deserialize(FileSystemUtils.ReadFile(filePath));
             //Set back into Cache
            // DataCache.SetCache("EventQueueConfig", config, new CacheDependency(filePath));
         }
         else
         {
             config = new EventQueueConfiguration();
             config.PublishedEvents = new Dictionary<string, PublishedEvent>();
             config.EventQueueSubscribers = new Dictionary<string, SubscriberInfo>();
             SubscriberInfo subscriber = new SubscriberInfo("DNN Core");
             RegisterEventSubscription(config, "Application_Start", subscriber);
             RegisterEventSubscription(config, "Application_Start_FirstRequest", subscriber);
             SaveConfig(config, filePath);
         }
     }
     return config;
 }