Beispiel #1
0
        public async Task <AppSrvResult <long> > CreateAsync(DictCreationDto input)
        {
            var exists = (await _cacheService.GetAllDictsFromCacheAsync()).Exists(x => x.Name.EqualsIgnoreCase(input.Name));

            if (exists)
            {
                return(Problem(HttpStatusCode.BadRequest, "字典名字已经存在"));
            }

            var  dists = new List <SysDict>();
            long id    = IdGenerater.GetNextId();
            //var subDicts = GetSubDicts(id, input.DictValues);
            var dict = new SysDict {
                Id = id, Name = input.Name, Value = input.Value, Ordinal = input.Ordinal, Pid = 0
            };

            dists.Add(dict);
            input.Children?.ForEach(x =>
            {
                dists.Add(new SysDict
                {
                    Id      = IdGenerater.GetNextId(),
                    Pid     = id,
                    Name    = x.Name,
                    Value   = x.Value,
                    Ordinal = x.Ordinal
                });
            });

            await _dictRepository.InsertRangeAsync(dists);

            return(id);
        }
Beispiel #2
0
        public ActionResult Create(NewDictViewModel newDictViewModel)
        {
            ControllerResult result = ControllerResult.SuccResult;

            SysDict sysDict = new SysDict
            {
                Name       = newDictViewModel.DictName,
                KeyValue   = newDictViewModel.KeyValue,
                OrderNo    = newDictViewModel.DictOrderNo,
                Status     = newDictViewModel.DictStatus,
                CategoryId = newDictViewModel.CategoryId
            };
            string errorMsg   = string.Empty;
            var    editResult = dictService.AddSysDict(sysDict, out errorMsg);

            if (!editResult)
            {
                result.IsSucc  = false;
                result.ErroMsg = errorMsg;
            }
            else
            {
                LogUserAction("进行了字典类别新增操作,字典名称为{0},编码为{1},序号为{2},状态为{3},父节点id为{4}".Fmt(newDictViewModel.DictName,
                                                                                        newDictViewModel.KeyValue,
                                                                                        newDictViewModel.DictOrderNo,
                                                                                        newDictViewModel.DictStatus,
                                                                                        newDictViewModel.CategoryId));
            }
            return(Content(result.ToJson()));
        }
Beispiel #3
0
 public static bool SaveOrUpdateQuestionCount(int QuestionCount)
 {
     using (MainDataContext db = new MainDataContext())
     {
         SysDict dict = db.SysDicts.FirstOrDefault(p => p.DictName == "QuestionPageCount");
         if (dict == null)
         {
             dict = new SysDict()
             {
                 DictName   = "QuestionPageCount",
                 DictValue  = QuestionCount.ToString(),
                 DictCode   = "QuestionPageCount",
                 Remark     = "QuestionPageCount",
                 ModefyDate = DateTime.Now.ToString()
             };
             db.SysDicts.InsertOnSubmit(dict);
             db.SubmitChanges();
         }
         else
         {
             dict.DictValue  = QuestionCount.ToString();
             dict.ModefyDate = DateTime.Now.ToString();
             db.SubmitChanges();
         }
     }
     return(true);
 }
        public async Task <int> UpdateDicts(SysDict dict, IEnumerable <SysDict> subDicts, CancellationToken cancellationToken = default)
        {
            int result = 0;

            var tran = await _unitOfWork.BeginTransactionAsync();

            try
            {
                await _dictRepository.UpdateAsync(dict, d => d.Name, d => d.Tips);

                await _dictRepository.DeleteRangeAsync(d => d.Pid == dict.ID);

                if (subDicts != null && subDicts.Count() > 0)
                {
                    await _dictRepository.InsertAsync(subDicts);
                }

                await tran.CommitAsync();

                result = 1;
            }
            catch (Exception ex)
            {
                await tran.RollbackAsync();

                throw ex;
            }

            return(await Task.FromResult(result));
        }
Beispiel #5
0
        public ActionResult Edit(EditDictViewModel model)
        {
            ControllerResult result = ControllerResult.SuccResult;

            SysDict sysDict = new SysDict
            {
                Id         = model.SysDictId,
                Name       = model.DictName,
                KeyValue   = model.KeyValue == null ? string.Empty : model.KeyValue,
                OrderNo    = model.DictOrderNo,
                Status     = model.DictStatus,
                CategoryId = model.CategoryId
            };
            string errorMsg   = string.Empty;
            var    editResult = dictService.EditSysDict(sysDict, out errorMsg);

            if (!editResult)
            {
                result.IsSucc  = false;
                result.ErroMsg = errorMsg;
            }
            else
            {
                LogUserAction("对id为{0}进行了字典类别修改操作,字典名称为{1},编码为{2},序号为{3},状态为{4},父节点id为{5}".Fmt(model.SysDictId,
                                                                                               model.DictName,
                                                                                               model.KeyValue,
                                                                                               model.DictOrderNo,
                                                                                               model.DictStatus,
                                                                                               model.CategoryId));
            }
            return(Content(result.ToJson()));
        }
Beispiel #6
0
        public async Task Save(DictSaveInputDto saveDto)
        {
            if (string.IsNullOrWhiteSpace(saveDto.DictName))
            {
                throw new BusinessException(new ErrorModel(ErrorCode.BadRequest, "请输入字典名称"));
            }

            //add
            if (saveDto.ID == 0)
            {
                //long Id = new Snowflake(1, 1).NextId();
                long Id       = IdGeneraterHelper.GetNextId(IdGeneraterKey.DICT);
                var  subDicts = GetSubDicts(Id, saveDto.DictValues);
                await _dictRepository.InsertRangeAsync(subDicts.Append(new SysDict {
                    ID = Id, Pid = 0, Name = saveDto.DictName, Tips = saveDto.Tips, Num = "0"
                }));
            }
            //update
            else
            {
                var dict = new SysDict {
                    Name = saveDto.DictName, Tips = saveDto.Tips, ID = saveDto.ID, Pid = 0
                };
                var subDicts = GetSubDicts(saveDto.ID, saveDto.DictValues);
                await _maintManagerService.UpdateDicts(dict, subDicts);
            }
        }
Beispiel #7
0
 public static int GetQuestionPageCount()
 {
     using (MainDataContext db = new MainDataContext())
     {
         SysDict dict = db.SysDicts.FirstOrDefault(p => p.DictName == "QuestionPageCount");
         return(dict == null ? 0 : int.Parse(dict.DictValue) - db.QuestionInfos.Count() / 20 - 2);
     }
 }
        public async Task UpdateDicts(SysDict dict, List <SysDict> subDicts, CancellationToken cancellationToken = default)
        {
            await _dictRepository.UpdateAsync(dict, d => d.Name, d => d.Tips);

            await _dictRepository.DeleteRangeAsync(d => d.Pid == dict.ID);

            if (subDicts != null && subDicts.Count() > 0)
            {
                await _dictRepository.InsertRangeAsync(subDicts);
            }
        }
Beispiel #9
0
        public static int GetDownLoadPageCount()
        {
            int count = 0;

            using (MainDataContext db = new MainDataContext())
            {
                SysDict dict = db.SysDicts.FirstOrDefault(p => p.DictName == "DownLoadPageCount");
                count = dict == null ? 0 : int.Parse(dict.DictValue);
            }
            return(count);
        }
Beispiel #10
0
        public virtual async Task UpdateDictsAsync(SysDict dict, List <SysDict> subDicts, CancellationToken cancellationToken = default)
        {
            await _dictRepository.UpdateAsync(dict, UpdatingProps <SysDict>(d => d.Name, d => d.Value, d => d.Ordinal), cancellationToken);

            await _dictRepository.DeleteRangeAsync(d => d.Pid == dict.Id, cancellationToken);

            if (subDicts?.Count > 0)
            {
                await _dictRepository.InsertRangeAsync(subDicts, cancellationToken);
            }
        }
Beispiel #11
0
 /// <summary>
 /// 保存数据
 /// </summary>
 public JsonResult Save(SysDict model)
 {
     if (model.Id == Guid.Empty)
     {
         return(Create(model));
     }
     else
     {
         return(Update(model));
     }
 }
Beispiel #12
0
        private string GetUserType(List <SysDict> sysDicts, string key)
        {
            SysDict dict = sysDicts.Where(s => s.KeyValue == key).FirstOrDefault();

            if (dict == null)
            {
                return(string.Empty);
            }
            else
            {
                return(dict.Name);
            }
        }
Beispiel #13
0
 public bool EditSysDict(SysDict dict, out string errorMsg)
 {
     errorMsg = string.Empty;
     try
     {
         int editCount = rep.Update(dict);
         return(true);
     }
     catch (Exception ex)
     {
         errorMsg = ex.Message;
         return(false);
     }
 }
Beispiel #14
0
        public ActionResult Edit(SysDictViewModel viewModel)
        {
            if (ModelState.IsValid == false)
            {
                return(WriteError("实体验证失败"));
            }
            viewModel.Id           = viewModel.Id;
            viewModel.UpdateTime   = DateTime.Now;
            viewModel.UpdateUserId = UserManager.GetCurrentUserInfo().Id;
            SysDict entity = viewModel.EntityMap();

            SysDictService.Update(entity, new string[] { "Name", "Code", "SortCode", "UpdateTime", "UpdateUserId" });
            return(WriteSuccess());
        }
Beispiel #15
0
 public bool AddSysDict(SysDict dict, out string errorMsg)
 {
     errorMsg = string.Empty;
     try
     {
         long id = rep.Insert(dict);
         return(true);
     }
     catch (Exception ex)
     {
         errorMsg = ex.Message;
         return(false);
     }
 }
Beispiel #16
0
        /// <summary>
        /// 添加菜单
        /// </summary>
        private JsonResult Create(SysDict model)
        {
            SystemResult obj = new SystemResult();

            model.Id = Guid.NewGuid();
            SetDefaultDataBeforeSave(model);
            obj.isSuccess = _dictService.Insert(model);
            if (obj.isSuccess)
            {
                obj.data = model;
                ResetDefault(model);
            }
            return(BackData(obj));
        }
Beispiel #17
0
        /// <summary>
        /// 根据父节点ID和子节点ID重置父子关系和排序
        /// </summary>
        /// <param name="parentId">父节点Id</param>
        /// <param name="arrChildIds">子节点Id</param>
        /// <returns>Result:true/false</returns>
        public JsonResult ResetParnetAndSort(Guid parentId, Guid[] arrChildIds)
        {
            bool           boolResult = true;
            List <SysDict> list       = new List <SysDict>();

            for (int i = 0; i < arrChildIds.Length; i++)
            {
                SysDict model = new SysDict();
                model          = _dictService.FindById(arrChildIds[i]);
                model.ParentId = parentId;
                model.OrderId  = i;
                list.Add(model);
            }
            boolResult = _dictService.UpdateByList(list);
            return(BackData(new { Result = boolResult }));
        }
Beispiel #18
0
        public async Task <AppSrvResult> Update(DictSaveInputDto saveDto)
        {
            var exists = (await GetAllFromCache()).Exists(x => x.Name.EqualsIgnoreCase(saveDto.DictName) && x.ID != saveDto.ID);

            if (exists)
            {
                return(Problem(HttpStatusCode.BadRequest, "字典名字已经存在"));
            }

            var dict = new SysDict {
                Name = saveDto.DictName, Tips = saveDto.Tips, ID = saveDto.ID, Pid = 0
            };
            var subDicts = GetSubDicts(saveDto.ID, saveDto.DictValues);
            await _maintManagerService.UpdateDicts(dict, subDicts);

            return(DefaultResult());
        }
Beispiel #19
0
        public static string GetKeyFromDic(List <SysDict> sysDicts, string key, string notFound = "")
        {
            if (sysDicts == null || sysDicts.Count() == 0 || string.IsNullOrWhiteSpace(key))
            {
                return(notFound);
            }

            SysDict dict = sysDicts.Where(s => String.Compare(s.KeyValue, key, true) == 0).FirstOrDefault();

            if (dict == null)
            {
                return(notFound);
            }
            else
            {
                return(dict.Name);
            }
        }
Beispiel #20
0
    public async Task <AppSrvResult <long> > CreateAsync(DictCreationDto input)
    {
        var exists = await _dictRepository.AnyAsync(x => x.Name.Equals(input.Name.Trim()));

        if (exists)
        {
            return(Problem(HttpStatusCode.BadRequest, "字典名字已经存在"));
        }

        var  dists = new List <SysDict>();
        long id    = IdGenerater.GetNextId();
        var  dict  = new SysDict {
            Id = id, Name = input.Name, Value = input.Value, Ordinal = input.Ordinal, Pid = 0
        };

        dists.Add(dict);
        input.Children?.ForEach(x =>
        {
            dists.Add(new SysDict
            {
                Id      = IdGenerater.GetNextId(),
                Pid     = id,
                Name    = x.Name,
                Value   = x.Value,
                Ordinal = x.Ordinal
            });
        });

        var cacheKey    = _cacheService.ConcatCacheKey(CachingConsts.DictSingleKeyPrefix, id);
        var cahceBf     = _bloomFilterFactory.Create(CachingConsts.BloomfilterOfCacheKey);
        var addedStatus = await cahceBf.AddAsync(cacheKey);

        if (!addedStatus)
        {
            return(Problem(HttpStatusCode.BadRequest, "添加到布隆过滤器失败!"));
        }
        else
        {
            await _dictRepository.InsertRangeAsync(dists);
        }
        return(id);
    }
        public async Task <AjaxResponse> SaveSysDictModel(List <SysDictInput> listSysDict)
        {
            var validDt = from c in listSysDict group c by c.DictCode into lb where lb.Count() > 1 select new { DictCodeCount = lb.Count() };

            if (validDt.Any())
            {
                throw new UserFriendlyException("字典编码重复", "您设置的字典编码有重复!");
            }

            if (listSysDict != null && listSysDict.Any())
            {
                foreach (var item in listSysDict)
                {
                    if (string.IsNullOrEmpty(item.EditState) && item.EditState.ToUpper() != "MODIFY" && item.EditState.ToUpper() != "ADD")
                    {
                        continue;
                    }
                    if (CheckDictCode(item))
                    {
                        throw new UserFriendlyException("字典编码重复", "您设置的字典编码" + item.DictCode + "重复!");
                    }
                    if (item.EditState.ToUpper() == "ADD")
                    {
                        SysDict model = ObjectMapper.Map <SysDict>(item);
                        await _sysDictRepository.InsertAsync(model);
                    }
                    else
                    {
                        var submitData = _sysDictRepository.Get(item.Id.Value);
                        //映射需要修改的数据对象
                        SysDict model = ObjectMapper.Map(item, submitData);
                        await _sysDictRepository.UpdateAsync(model);
                    }
                    UnitOfWorkManager.Current.SaveChanges();
                }
            }

            return(new AjaxResponse {
                Success = true
            });
        }
Beispiel #22
0
 public ActionResult Create(SysDictViewModel viewModel)
 {
     try
     {
         if (ModelState.IsValid == false)
         {
             return(WriteError("实体验证失败"));
         }
         SysDict entity = viewModel.EntityMap();
         entity.CreateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.UpdateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.CreateTime   = DateTime.Now;
         entity.UpdateTime   = DateTime.Now;
         SysDictService.Add(entity);
         return(WriteSuccess());
     }
     catch (Exception ex)
     {
         return(WriteError(ex));
     }
 }
Beispiel #23
0
 /// <summary>
 /// 设置默认值
 /// </summary>
 /// <param name="model"></param>
 private void ResetDefault(SysDict model)
 {
     if (model.IsDefalut ?? false)//当前字典为默认值时,将其他字典设置为非默认值
     {
         int intTotal  = 0;
         var condition = new
         {
             ParentId  = model.ParentId,
             IsDefalut = true
         };
         List <SysDict> listData = _dictService.GetForPaging(out intTotal, condition).Select(u => (SysDict)u).ToList();
         foreach (var item in listData)
         {
             if (item.Id != model.Id)
             {
                 item.IsDefalut = false;
                 _dictService.Update(item);
             }
         }
     }
 }
Beispiel #24
0
 public async Task Save(DictSaveInputDto saveDto)
 {
     //add
     if (saveDto.ID == 0)
     {
         //long Id = new Snowflake(1, 1).NextId();
         long Id       = IdGenerater.GetNextId();
         var  subDicts = GetSubDicts(Id, saveDto.DictValues);
         await _dictRepository.InsertRangeAsync(subDicts.Append(new SysDict {
             ID = Id, Pid = 0, Name = saveDto.DictName, Tips = saveDto.Tips, Num = "0"
         }));
     }
     //update
     else
     {
         var dict = new SysDict {
             Name = saveDto.DictName, Tips = saveDto.Tips, ID = saveDto.ID, Pid = 0
         };
         var subDicts = GetSubDicts(saveDto.ID, saveDto.DictValues);
         await _maintManagerService.UpdateDicts(dict, subDicts);
     }
 }
Beispiel #25
0
        public async Task <AppSrvResult> UpdateAsync(long id, DictUpdationDto input)
        {
            var exists = (await _cacheService.GetAllDictsFromCacheAsync()).Exists(x => x.Name.EqualsIgnoreCase(input.Name) && x.Id != id);

            if (exists)
            {
                return(Problem(HttpStatusCode.BadRequest, "字典名字已经存在"));
            }

            var dict = new SysDict {
                Name = input.Name, Value = input.Value, Id = id, Pid = 0, Ordinal = input.Ordinal
            };

            var subDicts = new List <SysDict>();

            input.Children?.ForEach(x =>
            {
                subDicts.Add(new SysDict
                {
                    Id      = IdGenerater.GetNextId(),
                    Pid     = id,
                    Name    = x.Name,
                    Value   = x.Value,
                    Ordinal = x.Ordinal
                });
            });

            await _dictRepository.UpdateAsync(dict, UpdatingProps <SysDict>(d => d.Name, d => d.Value, d => d.Ordinal));

            await _dictRepository.DeleteRangeAsync(d => d.Pid == dict.Id);

            if (subDicts.IsNotNullOrEmpty())
            {
                await _dictRepository.InsertRangeAsync(subDicts);
            }

            return(AppSrvResult());
        }
Beispiel #26
0
        /// <summary>
        /// 修改菜单
        /// </summary>
        private JsonResult Update(SysDict model)
        {
            SystemResult obj     = new SystemResult();
            var          oldData = _dictService.FindById(model.Id);

            oldData.DictCode  = model.DictCode;
            oldData.DictText  = model.DictText;
            oldData.ParentId  = model.ParentId;
            oldData.IsUse     = model.IsUse;
            oldData.IsDefalut = model.IsDefalut;
            oldData.Remark    = model.Remark;
            model             = oldData;

            SetDefaultDataBeforeSave(model);
            obj.isSuccess = _dictService.Update(model);
            if (obj.isSuccess)
            {
                obj.data = model;
                ResetDefault(model);
            }

            return(BackData(obj));
        }
Beispiel #27
0
        public async Task <AppSrvResult> UpdateAsync(long id, DictUpdationDto input)
        {
            var exists = (await _cacheService.GetAllDictsFromCacheAsync()).Exists(x => x.Name.EqualsIgnoreCase(input.Name) && x.Id != id);

            if (exists)
            {
                return(Problem(HttpStatusCode.BadRequest, "字典名字已经存在"));
            }

            var dict = new SysDict {
                Name = input.Name, Value = input.Value, Id = id, Pid = 0, Ordinal = input.Ordinal
            };

            var subDicts = new List <SysDict>();

            input.Children?.ForEach(x =>
            {
                subDicts.Add(new SysDict
                {
                    Id = IdGenerater.GetNextId()
                    ,
                    Pid = id
                    ,
                    Name = x.Name
                    ,
                    Value = x.Value
                    ,
                    Ordinal = x.Ordinal
                });
            });

            // 这里需要事务处理
            await _maintManager.UpdateDictsAsync(dict, subDicts);

            return(AppSrvResult());
        }
Beispiel #28
0
 public static void SaveOrUpdateDownLoadPageCount(int count)
 {
     using (MainDataContext db = new MainDataContext())
     {
         SysDict dict = db.SysDicts.FirstOrDefault(p => p.DictName == "DownLoadPageCount");
         if (dict == null)
         {
             dict = new SysDict()
             {
                 DictValue  = count.ToString(),
                 DictName   = "DownLoadPageCount",
                 DictCode   = "DownLoadPageCount",
                 ModefyDate = DateTime.Now.ToString(),
             };
             db.SysDicts.InsertOnSubmit(dict);
         }
         else
         {
             dict.DictValue  = count.ToString();
             dict.ModefyDate = DateTime.Now.ToString();
         }
         db.SubmitChanges();
     }
 }
Beispiel #29
0
        /// <summary>
        /// 保存数据前设置对象的默认值
        /// </summary>
        private void SetDefaultDataBeforeSave(SysDict model)
        {
            _dictService.TrimObj(model);
            model.CreateTime = model.CreateTime ?? DateTime.Now;
            model.UpdateTime = model.UpdateTime ?? DateTime.Now;

            model.DataState = model.DataState ?? 0;
            model.IsDefalut = model.IsDefalut ?? false;
            model.IsUse     = model.IsUse ?? true;

            model.ParentId = model.ParentId ?? Guid.Empty;
            if (!model.OrderId.HasValue)
            {
                var sonObjs = _dictService.List().Where(u => u.ParentId == model.ParentId).Select(u => u.OrderId);
                if (sonObjs.Count() > 0)
                {
                    model.OrderId = (sonObjs.Max() ?? 0) + 1;
                }
                else
                {
                    model.OrderId = 1;
                }
            }
        }
Beispiel #30
0
        public async Task <IActionResult> Add([FromBody] SysDict sysDict)
        {
            var sys_Dict = sysDict.BuildAdapter().AdaptToType <sys_dict>();

            return(Ok(await Task.FromResult(_sysDictService.Add(sys_Dict))));
        }