コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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 });
        }
コード例 #4
0
ファイル: UiViewSet.cs プロジェクト: zszqwe/anycmd
                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));
                    }
                }
コード例 #5
0
        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;
        }
コード例 #6
0
        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
            }));
        }