protected BaseTemplate(int moduleId, int tabModuleId, string templateName)
        {
            ModuleId = moduleId;
            TabModuleId = tabModuleId;
            _settings = new SettingsController().GetModuleSettings(ModuleId, TabModuleId);
            Name = templateName;

        }
        /// <summary>
        /// Callback method that dynamically loads a type of template, using reflection
        /// </summary>
        /// <param name="cacheItemArgs">Arguments, containing moduleid and tabModuleId </param>
        /// <returns>ITemplate</returns>
        private object GetTemplateCallback(CacheItemArgs cacheItemArgs)
        {
            var moduleId = (int)cacheItemArgs.ParamList[0];
            var tabModuleId = (int)cacheItemArgs.ParamList[1];
            var moduleSettings = new SettingsController().GetModuleSettings(moduleId, tabModuleId);


                Type type = Type.GetType("DotNetNuke.Modules.Announcements.Components.Template." + moduleSettings.TemplateType);
                if (type != null && type.IsClass)
                {
                    var template = Activator.CreateInstance(type,
                        new object[] { moduleId, tabModuleId, moduleSettings.TemplateName });
                    return template;
                }
            return null;

        }