/// <summary> /// 修改分类 /// </summary> /// <param name="entity"></param> /// <param name="sc"></param> /// <returns></returns> public ModelClass Update(ModelClass entity, IServerContext sc) { Func <ModelClass> func = () => { if (entity == null) { ThrowErrorCodeException("数据对象为空"); } if (String.IsNullOrEmpty(entity.Name)) { ThrowArgException("分类名称不能为空"); } if (String.IsNullOrEmpty(entity.Id)) { ThrowArgException("分类编码不能为空"); } ServerContextInfo scInfo = GetServerContextInfo(sc); var serverModel = this.GetDAL <IModelClassDAL>(sc).LoadData(entity.Id, sc); if (serverModel == null || string.IsNullOrEmpty(serverModel.Id)) { ThrowArgException("修改的分类不存在"); } if (IsHasNameExcludeOneself(entity, sc)) { ThrowArgException("分类名称已经存在"); } //赋值 serverModel.Name = entity.Name; entity = this.GetDAL <IModelClassDAL>(sc).SaveData(serverModel, sc); return(entity); }; return(this.CallFunc <ModelClass>(func, sc, "Update", "修改分类失败")); }
/// <summary> /// 新增分类 /// </summary> /// <param name="entity"></param> /// <param name="sc"></param> /// <returns></returns> public ModelClass Add(ModelClass entity, IServerContext sc) { Func <ModelClass> func = () => { if (entity == null) { ThrowErrorCodeException("数据对象为空"); } if (String.IsNullOrEmpty(entity.Name)) { ThrowArgException("分类名称不能为空"); } if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); } ServerContextInfo scInfo = GetServerContextInfo(sc); if (IsHasName(entity.Name, sc)) { ThrowErrorCodeException("分类名称已经存在"); } entity.CreateTime = DateTime.Now; entity.CreateUserId = scInfo.UserId; entity.CreateOrganizationId = scInfo.OrgId; entity = this.GetDAL <IModelClassDAL>(sc).SaveData(entity, sc); return(entity); }; return(this.CallFunc <ModelClass>(func, sc, "Add", "保存分类失败")); }
/// <summary> /// 【设计时】保存设计时数据 /// </summary> /// <param name="data">要保存的数据</param> /// <param name="fromPublishModel">调用此接口的来源动作:是否来自发布模块</param> /// <param name="sc">上下文服务</param> /// <returns>保存成功配置对象,否则返回null</returns> public ModelDesignData SaveDesignData(ModelDesignData data, Boolean fromPublishModel, IServerContext sc) { Func <ModelDesignData> func = () => { // 1.1 数据验证 if (data == null) { ThrowErrorCodeException("数据对象为空"); } if (String.IsNullOrEmpty(data.Name)) { ThrowArgException("请输入模块名称"); } if (String.IsNullOrEmpty(data.Id)) { data.Id = Guid.NewGuid().ToString(); } ServerContextInfo scInfo = GetServerContextInfo(sc); // 1.2 默认值处理 #region 代码折叠: 默认值处理 String id = data.Id; IModelDesignDataDAL dal = this.GetDAL <IModelDesignDataDAL>(sc); ModelDesignData oldData = dal.LoadData(id, sc); if (oldData == null) { // 新增数据 data.AddTime = DateTime.Now; data.AddUserId = scInfo.UserId; } // 模块状态处理:是【发布模块】调用此接口时始终为【已发布】;否则新增时为【始终未发布】,保存时为【已保存未发布】 if (fromPublishModel == true) { data.State = ModelState.Published; data.PublishTime = DateTime.Now; data.PublishUserId = scInfo.UserId; } else { if (oldData == null || oldData.State == ModelState.Never) { data.State = ModelState.Never; } else { data.State = ModelState.Saved; } } #endregion // 1.3 保存数据 data = dal.SaveData(data, sc); // 1.4 记录保存日志 this.WriteLog("保存模块数据", oldData, data, sc); // 1.5 返回数据 return(data); }; return(this.CallFunc <ModelDesignData>(func, sc, "SaveDesignData", "【设计时】保存设计时数据")); }
/// <summary> /// 记录操作日志 /// </summary> /// <param name="logTitle">日志标题</param> /// <param name="oldData">旧数据</param> /// <param name="newData">新数据</param> /// <param name="sc">上下文</param> private void WriteLog(String logTitle, ModelConfigBase oldData, ModelConfigBase newData, IServerContext sc) { ServerContextInfo scInfo = this.GetServerContextInfo(sc); ModelConfigLog log = new ModelConfigLog() { Id = Guid.NewGuid().ToString(), LogDate = DateTime.Now, LogTitle = logTitle, LogUserId = scInfo.UserId, OldConfig = oldData, NewConfig = newData, }; this.SaveData <IModelConfigLogDAL, ModelConfigLog>(log, sc); }
/// <summary> /// 保存控件信息 /// </summary> /// <param name="entity"></param> /// <param name="sc"></param> /// <returns></returns> public ControlEntity Save(ControlEntity entity, IServerContext sc) { Func <ControlEntity> func = () => { // 1.1 数据验证 if (entity == null) { ThrowErrorCodeException("数据对象为空"); } if (String.IsNullOrEmpty(entity.Code)) { ThrowArgException("控件编码不能为空"); } if (String.IsNullOrEmpty(entity.Name)) { ThrowArgException("控件名称不能为空"); } if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); } ServerContextInfo scInfo = GetServerContextInfo(sc); // 1.2 默认值处理 #region 代码折叠: 默认值处理 String id = entity.Id; IControlDAL dal = this.GetDAL <IControlDAL>(sc); ControlEntity oldData = dal.LoadData(id, sc); if (oldData == null) { // 新增数据 entity.AddTime = DateTime.Now; entity.AddUserId = scInfo.UserId; entity.OrganizationId = scInfo.OrgId; } #endregion // 1.3 保存数据 entity = dal.SaveData(entity, sc); return(entity); }; return(this.CallFunc <ControlEntity>(func, sc, "Save", "保存控件数据")); }
/// <summary> /// 【运行时】保存用户扩展配置数据 /// </summary> /// <param name="data"></param> /// <param name="sc"></param> /// <returns></returns> public ModelUserExtendConfig SaveUserExtendData(ModelUserExtendConfig data, IServerContext sc) { Func <ModelUserExtendConfig> func = () => { // 1.1 数据验证 if (data == null) { ThrowErrorCodeException("数据对象为空"); } if (String.IsNullOrEmpty(data.Id)) { data.Id = Guid.NewGuid().ToString(); } ServerContextInfo scInfo = GetServerContextInfo(sc); //String id = data.Id; IModelUserExtendConfigDAL dal = this.GetDAL <IModelUserExtendConfigDAL>(sc); //ModelUserExtendConfig oldData = dal.LoadData(id, sc); data = dal.SaveData(data, sc); return(data); }; return(this.CallFunc <ModelUserExtendConfig>(func, sc, "SaveUserExtendData", "【运行时】保存用户扩展配置数据")); }
/// <summary> /// 删除分类 /// </summary> /// <param name="id"></param> /// <param name="sc"></param> /// <returns></returns> public bool Delete(string id, IServerContext sc) { Func <bool> func = () => { if (String.IsNullOrEmpty(id)) { ThrowArgException("分类编码不能为空"); } ServerContextInfo scInfo = GetServerContextInfo(sc); //判断是否可以删除 List <ModelDesignData> modelList = ModelDesignManager.Instance.GetDesignDataListByUserAndClass(id, sc); int?count = modelList?.Count; if (count != null && count > 0) { ThrowArgException("分类中存在模块,不能删除!"); } IModelClassDAL dal = this.GetDAL <IModelClassDAL>(sc); return(dal.DeleteData(id, sc)); }; return(this.CallFunc <bool>(func, sc, "Delete", "删除分类失败")); }