public Task GetSiteConfig([FromForm] int id) { ViewSiteConfig config = ViewAgent.Instance().GetSiteViewConfig(id); ViewSetting setting = ViewAgent.Instance().GetViewSetting(config.ViewID); IViewBase view = ViewUtils.CreateInstance(setting.Code, config.Setting); return(this.GetResult(view.ToSettingObject())); }
/// <summary> /// 保存商户对于视图的配置 /// </summary> /// <param name="configId"></param> /// <param name="setting"></param> /// <returns></returns> public bool SaveSiteViewConfig(int configId, string setting) { ViewSiteConfig config = this.GetSiteViewConfig(configId); if (config == null) { return(this.FaildMessage("配置项目错误")); } // 验证setting内容是否正确 ViewSetting view = this.GetViewSetting(config.ViewID); try { ViewUtils.CreateInstance(view.Code, setting); } catch (Exception ex) { return(this.FaildMessage(ex.Message)); } config.Setting = setting; this.WriteDB.Update <ViewSiteConfig, string>(t => t.Setting, setting, t => t.ID == configId); ViewCaching.Instance().SaveSiteConfig(config); return(this.AccountInfo.Log(LogType.Site, $"修改商户{config.SiteID}视图配置参数,ID={configId},View={view.Code}")); }
/// <summary> /// 保存商户模板对视图的配置 /// </summary> /// <param name="config"></param> public void SaveSiteConfig(ViewSiteConfig config) { string key = $"{SITECONFIG}{config.TemplateID}:{config.ViewID}"; this.NewExecutor().HashSet(key, config); }
/// <summary> /// 保存商户模板 /// </summary> /// <param name="template"></param> /// <param name="models"></param> /// <returns></returns> public bool SaveSiteTemplateInfo(ViewSiteTemplate template, int[] models) { if (string.IsNullOrEmpty(template.Name)) { return(this.FaildMessage("请输入模板名称")); } if (!string.IsNullOrEmpty(template.Domain) && !isDomain(template.Domain)) { return(this.FaildMessage("域名错误,请重新输入域名")); } bool isNew = template.ID == 0; using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted)) { if (template.ID == 0) { template.AddIdentity(db); } else { template.Update(db, t => t.Name, t => t.Platform, t => t.Domain); } //# 得到当前平台下所有的视图 List <ViewSetting> views = db.ReadList <ViewSetting>(t => t.Platform == template.Platform); List <ViewModel> modelList = new List <ViewModel>(); foreach (int modelId in models) { ViewModel model = db.ReadInfo <ViewModel>(t => t.ID == modelId); if (model == null) { db.Rollback(); return(this.FaildMessage($"模型ID{modelId}不存在")); } ViewSiteConfig config = isNew ? null : config = db.ReadInfo <ViewSiteConfig>(t => t.TemplateID == template.ID && t.ViewID == model.ViewID && t.SiteID == template.SiteID); if (config != null && config.ModelID != modelId) { config.ModelID = modelId; config.Update(db, t => t.ModelID); } else if (config == null) { config = new ViewSiteConfig() { TemplateID = template.ID, ViewID = model.ViewID, ModelID = model.ID, SiteID = template.SiteID }; config.Add(db); } modelList.Add(model); } ViewSetting view = views.FirstOrDefault(t => !modelList.Any(p => p.ViewID == t.ID)); if (view != null) { db.Rollback(); return(this.FaildMessage($"视图{view.Name}未选则模型")); } db.AddCallback(() => { SiteCaching.Instance().RemoveSiteInfo(template.SiteID); }); db.Commit(); } return(this.AccountInfo.Log(LogType.View, $"保存系统模板 {template.Platform}/{template.Name}")); }