public IList <UiViewButton> GetAllUiViewButtons() { var list = new List <UiViewButton>(); foreach (DataRow row in this["UiViewButton"].Rows) { var item = new UiViewButton { Id = (Guid)row["Id"], ButtonId = (Guid)row["ButtonId"], Description = row["Description"] == DBNull.Value ? null : row["Description"].ToString(), FunctionId = row["FunctionId"] == DBNull.Value ? null : (Guid?)row["FunctionId"], IsEnabled = (int)row["IsEnabled"], UiViewId = (Guid)row["UiViewId"] }; var entity = item as IEntityBase; entity.CreateBy = row["CreateBy"] == DBNull.Value ? null : row["CreateBy"].ToString(); entity.CreateOn = row["CreateOn"] == DBNull.Value ? null : (DateTime?)row["CreateOn"]; entity.CreateUserId = row["CreateUserId"] == DBNull.Value ? null : (Guid?)row["CreateUserId"]; entity.ModifiedBy = row["ModifiedBy"] == DBNull.Value ? null : row["ModifiedBy"].ToString(); entity.ModifiedOn = row["ModifiedOn"] == DBNull.Value ? null : (DateTime?)row["ModifiedOn"]; entity.ModifiedUserId = row["ModifiedUserId"] == DBNull.Value ? null : (Guid?)row["ModifiedUserId"]; list.Add(item); } return(list); }
public IList <UiViewButton> GetAllUiViewButtons() { var list = new List <UiViewButton>(); foreach (DataRow row in this["UiViewButton"].Rows) { var item = new UiViewButton((Guid)row["Id"]) { ButtonId = (Guid)row["ButtonId"], Description = row["Description"] == DBNull.Value ? null : row["Description"].ToString(), FunctionId = row["FunctionId"] == DBNull.Value ? null : (Guid?)row["FunctionId"], IsEnabled = (int)row["IsEnabled"], UiViewId = (Guid)row["UiViewId"] }; var entity = (IEntityBase)item; PopulateEntity(entity, row); list.Add(item); } return(list); }
public ActionResult AddOrRemoveButtons() { String json = Request["data"]; var rows = (ArrayList)MiniJSON.Decode(json); foreach (Hashtable row in rows) { //根据记录状态,进行不同的增加、删除、修改操作 String state = row["_state"] != null ? row["_state"].ToString() : ""; //更新:_state为空或modified if (state == "modified" || state == "") { string functionIdStr = row["FunctionId"] == null ? null : row["FunctionId"].ToString(); Guid? functionId = string.IsNullOrEmpty(functionIdStr) ? null : new Guid?(new Guid(functionIdStr)); if (functionId.HasValue) { FunctionState function; if (!AcDomain.FunctionSet.TryGetFunction(functionId.Value, out function)) { throw new ValidationException("意外的托管功能标识" + functionId.Value); } } var inputModel = new UiViewButton { Id = new Guid(row["Id"].ToString()), IsEnabled = int.Parse(row["IsEnabled"].ToString()), ButtonId = new Guid(row["ButtonId"].ToString()), UiViewId = new Guid(row["UiViewId"].ToString()), FunctionId = functionId }; if (bool.Parse(row["IsAssigned"].ToString())) { if (AcDomain.RetrieveRequiredService<IRepository<UiViewButton>>().AsQueryable().Any(a => a.Id == inputModel.Id)) { var updateModel = new UiViewButtonUpdateInput() { Id = inputModel.Id, IsEnabled = inputModel.IsEnabled, FunctionId = inputModel.FunctionId }; AcDomain.Handle(updateModel.ToCommand(AcSession)); } else { var input = new UiViewButtonCreateInput() { Id = inputModel.Id, ButtonId = inputModel.ButtonId, IsEnabled = inputModel.IsEnabled, FunctionId = inputModel.FunctionId, UiViewId = inputModel.UiViewId }; AcDomain.Handle(input.ToCommand(AcSession)); } } else { AcDomain.Handle(new RemoveUiViewButtonCommand(AcSession, inputModel.Id)); } if (functionId.HasValue) { int functionIsEnabled = int.Parse(row["FunctionIsEnabled"].ToString()); FunctionState function; if (!AcDomain.FunctionSet.TryGetFunction(functionId.Value, out function)) { throw new AnycmdException("意外的功能标识" + functionId.Value); } var input = new FunctionUpdateInput { Id = function.Id, Code = function.Code, SortCode = function.SortCode, IsManaged = function.IsManaged, IsEnabled = function.IsEnabled, DeveloperId = function.DeveloperId, Description = function.Description }; input.IsEnabled = functionIsEnabled; AcDomain.Handle(input.ToCommand(AcSession)); } } } return this.JsonResult(new ResponseData { success = true }); }
private void Handle(IAcSession acSession, IUiViewButtonCreateIo input, bool isCommand) { var acDomain = _set._acDomain; var viewButtonsByUiView = _set._viewButtonsByUiView; var viewButtonDicById = _set._viewButtonDicById; var viewButtonRepository = acDomain.RetrieveRequiredService <IRepository <UiViewButton> >(); if (!input.Id.HasValue) { throw new ValidationException("标识是必须的"); } UiViewButton entity; lock (Locker) { ButtonState button; if (!acDomain.ButtonSet.TryGetButton(input.ButtonId, out button)) { throw new ValidationException("按钮不存在"); } UiViewState view; if (!acDomain.UiViewSet.TryGetUiView(input.UiViewId, out view)) { throw new ValidationException("界面视图不存在"); } if (input.FunctionId.HasValue) { FunctionState function; if (!acDomain.FunctionSet.TryGetFunction(input.FunctionId.Value, out function)) { throw new ValidationException("托管功能不存在"); } } if (acDomain.UiViewSet.GetUiViewButtons().Any(a => a.Id == input.Id.Value)) { throw new ValidationException("给定标识的界面视图按钮已经存在"); } entity = UiViewButton.Create(input); var state = UiViewButtonState.Create(acDomain, entity); if (!viewButtonsByUiView.ContainsKey(view)) { viewButtonsByUiView.Add(view, new List <UiViewButtonState>()); } if (!viewButtonsByUiView[view].Contains(state)) { viewButtonsByUiView[view].Add(state); } if (!viewButtonDicById.ContainsKey(state.Id)) { viewButtonDicById.Add(state.Id, state); } if (isCommand) { try { viewButtonRepository.Add(entity); viewButtonRepository.Context.Commit(); } catch { if (viewButtonsByUiView.ContainsKey(view)) { if (viewButtonsByUiView[view].Any(a => a.Id == entity.Id)) { var item = viewButtonsByUiView[view].First(a => a.Id == entity.Id); viewButtonsByUiView[view].Remove(item); } } if (viewButtonDicById.ContainsKey(entity.Id)) { viewButtonDicById.Remove(entity.Id); } viewButtonRepository.Context.Rollback(); throw; } } } if (isCommand) { acDomain.MessageDispatcher.DispatchMessage(new UiViewButtonAddedEvent(acSession, entity, input, isPrivate: true)); } }
public IList<UiViewButton> GetAllUiViewButtons() { var list = new List<UiViewButton>(); foreach (DataRow row in this["UiViewButton"].Rows) { var item = new UiViewButton { Id = (Guid)row["Id"], ButtonId = (Guid)row["ButtonId"], Description = row["Description"] == DBNull.Value ? null : row["Description"].ToString(), FunctionId = row["FunctionId"] == DBNull.Value ? null : (Guid?)row["FunctionId"], IsEnabled = (int)row["IsEnabled"], UiViewId = (Guid)row["UiViewId"] }; var entity = item as IEntityBase; entity.CreateBy = row["CreateBy"] == DBNull.Value ? null : row["CreateBy"].ToString(); entity.CreateOn = row["CreateOn"] == DBNull.Value ? null : (DateTime?)row["CreateOn"]; entity.CreateUserId = row["CreateUserId"] == DBNull.Value ? null : (Guid?)row["CreateUserId"]; entity.ModifiedBy = row["ModifiedBy"] == DBNull.Value ? null : row["ModifiedBy"].ToString(); entity.ModifiedOn = row["ModifiedOn"] == DBNull.Value ? null : (DateTime?)row["ModifiedOn"]; entity.ModifiedUserId = row["ModifiedUserId"] == DBNull.Value ? null : (Guid?)row["ModifiedUserId"]; list.Add(item); } return list; }
public ActionResult AddOrRemoveButtons() { String json = Request["data"]; var rows = (ArrayList)MiniJSON.Decode(json); foreach (Hashtable row in rows) { //根据记录状态,进行不同的增加、删除、修改操作 String state = row["_state"] != null ? row["_state"].ToString() : ""; //更新:_state为空或modified if (state == "modified" || state == "") { string functionIdStr = row["FunctionId"] == null ? null : row["FunctionId"].ToString(); Guid? functionId = string.IsNullOrEmpty(functionIdStr) ? null : new Guid?(new Guid(functionIdStr)); if (functionId.HasValue) { FunctionState function; if (!AcDomain.FunctionSet.TryGetFunction(functionId.Value, out function)) { throw new ValidationException("意外的托管功能标识" + functionId.Value); } } var inputModel = new UiViewButton(new Guid(row["Id"].ToString())) { IsEnabled = int.Parse(row["IsEnabled"].ToString()), ButtonId = new Guid(row["ButtonId"].ToString()), UiViewId = new Guid(row["UiViewId"].ToString()), FunctionId = functionId }; if (bool.Parse(row["IsAssigned"].ToString())) { if (AcDomain.RetrieveRequiredService <IRepository <UiViewButton, Guid> >().AsQueryable().Any(a => a.Id == inputModel.Id)) { var updateModel = new UiViewButtonUpdateInput() { Id = inputModel.Id, IsEnabled = inputModel.IsEnabled, FunctionId = inputModel.FunctionId }; AcDomain.Handle(updateModel.ToCommand(AcSession)); } else { var input = new UiViewButtonCreateInput() { Id = inputModel.Id, ButtonId = inputModel.ButtonId, IsEnabled = inputModel.IsEnabled, FunctionId = inputModel.FunctionId, UiViewId = inputModel.UiViewId }; AcDomain.Handle(input.ToCommand(AcSession)); } } else { AcDomain.Handle(new RemoveUiViewButtonCommand(AcSession, inputModel.Id)); } if (functionId.HasValue) { int functionIsEnabled = int.Parse(row["FunctionIsEnabled"].ToString()); FunctionState function; if (!AcDomain.FunctionSet.TryGetFunction(functionId.Value, out function)) { throw new GeneralException("意外的功能标识" + functionId.Value); } var input = new FunctionUpdateInput { Id = function.Id, Code = function.Code, SortCode = function.SortCode, IsManaged = function.IsManaged, IsEnabled = function.IsEnabled, DeveloperId = function.DeveloperId, Description = function.Description }; input.IsEnabled = functionIsEnabled; AcDomain.Handle(input.ToCommand(AcSession)); } } } return(this.JsonResult(new ResponseData { success = true })); }