public override int Insert(FormM form, DFDictionary entity, ref string message) { try { if (string.IsNullOrWhiteSpace(entity["ModuleId"])) { throw new Exception("请选择模块".GetRes()); } if (string.IsNullOrWhiteSpace(entity["PMenuId"])) { throw new Exception("请选择父菜单".GetRes()); } var parent = WF_M_MENULoader.Query(entity["PMenuId"]).FirstOrDefault(); var siblings = WF_M_MENULoader.Query(null, parent.MenuLabel).ToList(); var newEntity = entity.To <WF_M_MENU>(); newEntity.MenuId = Guid.NewGuid().ToString(); var user = Util.GetCurrentUser(); newEntity.CreateTime = DateTime.Now; newEntity.CreateUser = user.UserName; newEntity.LastModifyTime = DateTime.Now; newEntity.LastModifyUser = user.UserName; newEntity.MenuLabel = LabelHelper.GetNextLabelUsingSubLabelList(parent.MenuLabel, siblings.Select(a => a.MenuLabel).ToList()); WF_M_MENULoader.Insert(newEntity); message = "新增成功".GetRes(); return(DFPub.EXECUTE_SUCCESS); } catch (Exception ex) { message = ex.Message; return(DFPub.EXECUTE_ERROR); } }
public override int Query(FormM form, DFDictionary entity, DataGridVM vm, int start, int limit, ref string message) { if (entity["action"] == "querylist") { vm.rows = WF_M_MENULoader.Query(entity["MenuId"]); return(DFPub.EXECUTE_SUCCESS); } throw new Exception("无效的 action.GetRes()"); }
private List <WFTreeNode> QueryTree(DFDictionary dict) { var root = WF_M_MENULoader.Query("ROOT").FirstOrDefault(); var nodes = WF_M_MENULoader.Query(string.Empty).OrderBy(a => a.MenuOrder.GetValueOrDefault()).Select(a => new WFTreeNode() { pid = a.PMenuId, id = a.MenuId, text = string.Format("{0} {1} {2}", a.MenuOrder.GetValueOrDefault(), a.ModuleName, a.ModuleDisplayText.GetRes()) }).ToList(); var listStatus = JsonSerializeHelper.DeserializeObject <List <WFTreeNode> >(Base64StringHelper.ConvertFromBase64String(dict["DF_TREE_VIEWSTATE"])); var list = WFTreeHelper.GenerateTree("ROOT", nodes); WFTreeHelper.SetStatus(list, listStatus); return(list); }
public override int Update(FormM form, DFDictionary entity, ref string message) { if (entity["EditMode"] != "Edit") { return(Insert(form, entity, ref message)); } try { if (string.IsNullOrWhiteSpace(entity["MenuId"])) { throw new Exception("请传入 MenuId 参数".GetRes()); } if (string.IsNullOrWhiteSpace(entity["ModuleId"])) { throw new Exception("请选择对应的模块".GetRes()); } if (string.IsNullOrWhiteSpace(entity["PMenuId"])) { throw new Exception("请选择父菜单".GetRes()); } var oldEntity = WF_M_MENULoader.Query(entity["MenuId"]).FirstOrDefault(); if (oldEntity == null) { throw new Exception("找不到要更新的记录".GetRes()); } // 先将数据库查出来的老的实体转成字典,然后把客户端传过来的字典合并进去,这样就实现了数据的更新 var newEntity = DFDictionary.Create <WF_M_MENU>(oldEntity).Merge(entity).To <WF_M_MENU>(); var user = Util.GetCurrentUser(); var parent = WF_M_MENULoader.Query(entity["PMenuId"]).FirstOrDefault(); var siblings = WF_M_MENULoader.Query(null, parent.MenuLabel).ToList(); newEntity.MenuLabel = LabelHelper.GetNextLabelUsingSubLabelList(parent.MenuLabel, siblings.Select(a => a.MenuLabel).ToList()); newEntity.LastModifyTime = DateTime.Now; newEntity.LastModifyUser = user.UserName; newEntity.Expanded = ParseHelper.ParseInt(entity["Expanded"]); WF_M_MENULoader.Update(newEntity); message = "保存成功".GetRes(); return(DFPub.EXECUTE_SUCCESS); } catch (Exception ex) { message = ex.Message; return(DFPub.EXECUTE_ERROR); } }
public override int Delete(FormM form, DFDictionary entity, ref string message) { try { var data = JsonSerializeHelper.DeserializeObject <List <Dictionary <string, string> > >(entity["data"]); if (data == null) { throw new ArgumentNullException("data"); } WF_M_MENULoader.Delete(data.Select(a => a["MenuId"]).ToList()); message = "删除成功".GetRes(); return(DFPub.EXECUTE_SUCCESS); } catch (Exception ex) { message = ex.Message; return(DFPub.EXECUTE_ERROR); } }
public override DFDictionary Get(FormM form, DFDictionary entity, ref string message) { try { if (!string.IsNullOrWhiteSpace(entity["MenuId"])) { var item = WF_M_MENULoader.Query(entity["MenuId"]).FirstOrDefault(); if (item != null) { return(DFDictionary.Create <VM_WF_M_MENU>(item)); } } } catch (Exception ex) { message = ex.Message; } return(null); }