Beispiel #1
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 #2
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 #3
0
 public async Task <ActionResult <long> > UpdateAsync([FromRoute] long id, [FromBody] DictUpdationDto input)
 {
     return(Result(await _dictAppService.UpdateAsync(id, input)));
 }