Beispiel #1
0
        public async Task <OperationResult> AddModules(ModuleInputDto inputDto)
        {
            ModuleRepository.UnitOfWork.BeginTransaction();
            OperationResult result = await SecurityService.SecurityManager.CreateModule(inputDto);

            if (result.Successed)
            {
                Solution.Core.Models.Security.Module moduleData = SecurityService.SecurityManager.Modules.Where(x => x.Name.Equals(inputDto.Name)).FirstOrDefault();

                List <Guid> functionIds = new List <Guid>();
                foreach (var data in inputDto.FunctionModels)
                {
                    functionIds.Add(data.Id);
                }
                result = await SecurityService.SecurityManager.SetModuleFunctions(moduleData.Id, functionIds.ToArray());
            }
            ModuleRepository.UnitOfWork.Commit();
            if (result.ResultType == OperationResultType.Error)
            {
                return(result);
            }
            else
            {
                return(new OperationResult(OperationResultType.Success, "添加成功!"));
            }
        }
        public async Task <IActionResult> Create(ModuleInputDto dto)
        {
            Check.NotNull(dto, nameof(dto));

            OperationResult result = await _securityManager.CreateModule(dto);

            return(Json(result.ToAjaxResult()));
        }
        public async Task <IActionResult> Update(ModuleInputDto dto)
        {
            Check.NotNull(dto, nameof(dto));
            if (dto.Id == 1)
            {
                return(Json(new AjaxResult("根节点不能编辑", AjaxResultType.Error)));
            }

            OperationResult result = await _securityManager.UpdateModule(dto);

            return(Json(result.ToAjaxResult()));
        }
Beispiel #4
0
        public async Task <IHttpActionResult> Update(ModuleInputDto dto)
        {
            try
            {
                var result = await ModuleContract.EditModules(dto);

                return(Json(result));
            }
            catch (Exception ex)
            {
                return(Json(new OperationResult(OperationResultType.Error, "修改模块失败!" + ex.ToString())));
            }
        }
Beispiel #5
0
        public async Task <OperationResult> EditModules(ModuleInputDto inputDto)
        {
            ModuleRepository.UnitOfWork.BeginTransaction();
            var result = await SecurityService.SecurityManager.UpdateModule(inputDto);

            if (result.Successed || result.ResultType == OperationResultType.NoChanged)
            {
                List <Guid> functionIds = new List <Guid>();
                foreach (var data in inputDto.FunctionModels)
                {
                    functionIds.Add(data.Id);
                }
                result = await SecurityService.SecurityManager.SetModuleFunctions(inputDto.Id, functionIds.ToArray());
            }
            ModuleRepository.UnitOfWork.Commit();
            if (result.ResultType == OperationResultType.Error)
            {
                return(result);
            }
            else
            {
                return(new OperationResult(OperationResultType.Success, "编辑成功!"));
            }
        }
        public async Task UpdateModule(ModuleInputDto input)
        {
            if (await db.Modules.AnyAsync(m => m.Name == input.Name && m.Id != input.ModuleId))
            {
                throw new HttpResponseException(new HttpResponseMessage()
                {
                    Content = new StringContent(JsonConvert.SerializeObject(new ResponseApi()
                    {
                        Code = EExceptionType.Implement, Message = "该模块名称已存在"
                    }))
                });
            }

            if (await db.Modules.AnyAsync(m => m.Key == input.Key && m.Id != input.ModuleId))
            {
                throw new HttpResponseException(new HttpResponseMessage()
                {
                    Content = new StringContent(JsonConvert.SerializeObject(new ResponseApi()
                    {
                        Code = EExceptionType.Implement, Message = "该模块Key已存在"
                    }))
                });
            }

            var module = await db.Modules.SingleOrDefaultAsync(m => m.Id == input.ModuleId);

            if (module != null)
            {
                if (input.Key != module.Key)
                {
                    module.Key = input.Key;

                    var menu = await db.Menus.Where(m => m.ModuleId == module.Id).ToListAsync();

                    foreach (var item in menu)
                    {
                        item.Key = module.Key;

                        var element = await db.Elements.Where(m => m.MenuId == item.Id).ToListAsync();

                        foreach (var item1 in element)
                        {
                            item1.Key = module.Key;
                        }
                    }
                }

                module.Name         = input.Name;
                module.DisplayOrder = input.DisplayOrder;
            }
            else
            {
                throw new HttpResponseException(new HttpResponseMessage()
                {
                    Content = new StringContent(JsonConvert.SerializeObject(new ResponseApi()
                    {
                        Code = EExceptionType.Implement, Message = input.ModuleId + "不存在"
                    }))
                });
            }

            if (await db.SaveChangesAsync() <= 0)
            {
                throw new HttpResponseException(new HttpResponseMessage()
                {
                    Content = new StringContent(JsonConvert.SerializeObject(new ResponseApi()
                    {
                        Code = EExceptionType.Implement, Message = "更新失败"
                    }))
                });
            }
        }