示例#1
0
        public Task <string> RenderViewAsync(SkinTawkToModule module, SkinTawkToModuleController.DisplayModel model)
        {
            ScriptBuilder sb = new ScriptBuilder();

            ConfigData config = ConfigDataProvider.GetConfigAsync().Result;

            sb.Append($@"
// https://www.tawk.to/javascript-api/
var Tawk_API = Tawk_API || {{}}, Tawk_LoadStart = new Date();");

            if (Manager.HaveUser)
            {
                sb.Append($@"
Tawk_API.visitor = {{
    name: '{JE(Manager.UserName)}',
    email: '{JE(Manager.UserEmail)}',
    hash: '{JE(model.Hash)}'
}};");
            }

            sb.Append($@"
(function() {{
    var s1=document.createElement('script'),s0=document.getElementsByTagName('script')[0];
    s1.async=true;
    s1.src = '{JE(string.Format("https://embed.tawk.to/{0}/default", Utility.UrlEncodePath(config.Account)))}';
    s1.charset='UTF-8';
    s1.setAttribute('crossorigin','*');
    s0.parentNode.insertBefore(s1,s0);
}})();");

            Manager.ScriptManager.AddLast(sb.ToString());

            return(Task.FromResult <string>(null));
        }
示例#2
0
    private void LoadConfig()
    {
        m_configProvider     = new ConfigProvider();
        m_configDataProvider = new ConfigDataProvider();

        StoryConfig.PreloadInGameConfig();
        m_configDataProvider.InitialInfo();
    }
示例#3
0
        public async Task AddSupportAsync(YetaWFManager manager)
        {
            ScriptManager scripts = manager.ScriptManager;
            string        area    = AreaRegistration.CurrentPackage.AreaName;

            ConfigData config = await ConfigDataProvider.GetConfigAsync();

            scripts.AddConfigOption(area, "ExcludedPagesCss", config.ExcludedPagesCss);
            scripts.AddConfigOption(area, "IncludedPagesCss", config.IncludedPagesCss);
        }
示例#4
0
        /// <summary>
        /// 修改报名页面显示的单例对象
        /// </summary>
        /// <param name="ConfigDatas"></param>
        /// <returns></returns>
        public static ConfigDataProvider ConfigProviderCreate(ConfigData[] ConfigDatas)
        {
            ConfigDataProvider datas = new ConfigDataProvider
            {
                IsEditFlag  = true,
                ConfigDatas = ConfigDatas
            };

            return(datas);
        }
示例#5
0
 public static ConfigDataCache CreateInstance(ConfigDataProvider datas)
 {
     if (_instance == null || datas.IsEditFlag)
     {
         lock (lockHelper)
         {
             _instance = new ConfigDataCache(datas);
         }
     }
     return(_instance);
 }
示例#6
0
        /// <summary>
        /// 初始化报名页面显示的单例对象
        /// </summary>
        /// <returns></returns>
        public static ConfigDataProvider ConfigProviderCreate()
        {
            ////序列化
            //string json = Newtonsoft.Json.JsonConvert.SerializeObject(datas, Newtonsoft.Json.Formatting.Indented);
            //string path = System.Web.HttpContext.Current.Server.MapPath("/App_Data/Config/Yuruisoft.RS.Config/ConfigDataProvider.json.txt");
            //File.WriteAllText(path, json, Encoding.Default);

            //反序列化,通过读本地配置拿数据
            string             path    = System.Web.HttpContext.Current.Server.MapPath("/App_Data/Config/Yuruisoft.RS.Config/ConfigDataProvider.json.txt");
            string             strjson = System.IO.File.ReadAllText(path, Encoding.Default);
            ConfigDataProvider datas   = Newtonsoft.Json.JsonConvert.DeserializeObject <ConfigDataProvider>(strjson);

            return(datas);
        }
示例#7
0
        public async Task <ActionResult> Config()
        {
            using (ConfigDataProvider dataProvider = new ConfigDataProvider()) {
                Model model     = new Model {
                };
                ConfigData data = await dataProvider.GetItemAsync();

                if (data == null)
                {
                    throw new Error(this.__ResStr("notFound", "The messenger settings could not be found"));
                }
                model.SetData(data);
                return(View(model));
            }
        }
示例#8
0
        public async Task <ActionResult> SharingSidebar()
        {
            ConfigData config = await ConfigDataProvider.GetConfigAsync();

            if (string.IsNullOrWhiteSpace(config.Code))
            {
                return(new EmptyResult());
            }
            DisplayModel model = new DisplayModel()
            {
                Code = config.Code,
            };

            return(View(model));
        }
        public async Task <ActionResult> SkinHighlightJS()
        {
            ConfigData config = await ConfigDataProvider.GetConfigAsync();

            // find theme specific skin
            Package    package    = AreaRegistration.CurrentPackage;
            SkinAccess skinAccess = new SkinAccess();
            string     theme      = skinAccess.FindHighlightJSSkin(config.HighlightJSSkin);
            await Manager.AddOnManager.AddAddOnNamedAsync(package.AreaName, "SkinHighlightJS", theme);

            // add client-side init
            Manager.ScriptManager.AddLast("YetaWF_SyntaxHighlighter_HighlightJS", "YetaWF_SyntaxHighlighter.HighlightJS.init();");

            return(new EmptyResult());
        }
示例#10
0
        public async Task <ActionResult> Config()
        {
            using (ConfigDataProvider configDP = new ConfigDataProvider()) {
                Model model     = new Model {
                };
                ConfigData data = await configDP.GetItemAsync();

                if (data == null)
                {
                    throw new Error(this.__ResStr("notFound", "Currency converter configuration not found."));
                }
                model.SetData(data);
                return(View(model));
            }
        }
示例#11
0
        public async Task <ActionResult> Config_Partial(Model model)
        {
            using (ConfigDataProvider dataProvider = new ConfigDataProvider()) {
                ConfigData data = await dataProvider.GetItemAsync();// get the original item

                if (!ModelState.IsValid)
                {
                    return(PartialView(model));
                }
                data = model.GetData(data); // merge new data into original
                model.SetData(data);        // and all the data back into model for final display
                await dataProvider.UpdateConfigAsync(data);

                return(FormProcessed(model, this.__ResStr("okSaved", "Messenger Settings saved")));
            }
        }
示例#12
0
        public async Task <ActionResult> SkinSyntaxHighlighter()
        {
            ConfigData config = await ConfigDataProvider.GetConfigAsync();

            // find theme specific skin
            Package    package    = AreaRegistration.CurrentPackage;
            SkinAccess skinAccess = new SkinAccess();
            string     theme      = skinAccess.FindSyntaxHighlighterSkin(config.SyntaxHighlighterSkin);
            await Manager.AddOnManager.AddAddOnNamedAsync(package.AreaName, "SkinSyntaxHighlighter", theme);

            // add client-side init
            string url = VersionManager.GetAddOnNamedUrl(package.AreaName, "SkinSyntaxHighlighter");

            Manager.ScriptManager.AddLast("AlexGorbatchevCom_SyntaxHighlighter", "YetaWF_SyntaxHighlighter.AlexGorbatchevCom.init('" + url + "');");

            return(new EmptyResult());
        }
示例#13
0
        public async Task <ActionResult> SkinTawkTo()
        {
            ConfigData config = await ConfigDataProvider.GetConfigAsync();

            if (Manager.EditMode || !config.IsConfigured)
            {
                return(new EmptyResult());
            }
            DisplayModel model = new DisplayModel();

            if (Manager.HaveUser)
            {
                byte[] key = System.Text.Encoding.UTF8.GetBytes(config.APIKey);
                using (var hmacsha256 = new System.Security.Cryptography.HMACSHA256(key)) {
                    model.Hash = ByteArrayToString(hmacsha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Manager.UserEmail)));
                }
            }

            return(View(model));
        }
示例#14
0
        public async Task RunItemAsync(SchedulerItemBase evnt)
        {
            if (evnt.EventName == EventCreateBackup)
            {
                SiteBackup    siteBackup = new SiteBackup();
                List <string> errorList  = new List <string>();
                ConfigData    config     = await ConfigDataProvider.GetConfigAsync();

                await siteBackup.CreateAsync(errorList, DataOnly : config.DataOnly);
            }
            else if (evnt.EventName == EventRemoveOldBackups)
            {
                SiteBackup    siteBackup = new SiteBackup();
                List <string> errorList  = new List <string>();
                ConfigData    config     = await ConfigDataProvider.GetConfigAsync();

                await siteBackup.RemoveOldBackupsAsync(errorList, config.Days);
            }
            else
            {
                throw new Error(this.__ResStr("eventNameErr", "Unknown scheduler event {0}"), evnt.EventName);
            }
        }
示例#15
0
        public async Task <ActionResult> Config_Partial(Model model)
        {
            using (ConfigDataProvider configDP = new ConfigDataProvider()) {
                ConfigData data = await configDP.GetItemAsync();// get the original item

                if (data == null)
                {
                    throw new Error(this.__ResStr("alreadyDeleted", "The currency converter configuration has been removed and can no longer be updated."));
                }

                if (!ModelState.IsValid)
                {
                    return(PartialView(model));
                }

                data = model.GetData(data);             // merge new data into original
                model.SetData(data);                    // and all the data back into model for final display

                await configDP.UpdateConfigAsync(data); // save updated item

                return(FormProcessed(model, this.__ResStr("okSaved", "Currency converter configuration saved")));
            }
        }
示例#16
0
 public CommandSetWarp(IPlugin plugin)
 {
     _plugin         = plugin;
     _dataProvider   = (WarpsDataProvider)plugin.Container.Resolve <IDataProvider>("data");
     _configProvider = (ConfigDataProvider)plugin.Container.Resolve <IDataProvider>("config");
 }
示例#17
0
 public CommandSetWarpPay(IPlugin plugin, WarpsDataProvider dataProvider, ConfigDataProvider configProvider) : base(plugin)
 {
     _dataProvider   = dataProvider;
     _configProvider = configProvider;
 }