Пример #1
0
        public async Task <TreeSpecGroupDto> EditTreeSpecGroupAsync(EditTreeSpecGroupDto dto)
        {
            CheckDuplicateTreeGroupName(dto.Name, dto.Id);

            var treeSpecGroup = await _unitOfWork.GetRepository <ICTreeSpecGroup>()
                                .GetAllIncluding(x => x.ICTreeSpecGroupItems)
                                .FirstOrDefaultAsync(x => x.Id == dto.Id);

            if (treeSpecGroup == null)
            {
                throw new BusinessException("Không tìm thấy nhóm loài cây.");
            }

            treeSpecGroup.ICTreeSpecGroupName = dto.Name;
            treeSpecGroup.ICTreeSpecGroupDesc = dto.Desc;

            await _unitOfWork.GetRepository <ICTreeSpecGroup>().UpdateAsync(treeSpecGroup);

            foreach (var treeSpecGroupItem in treeSpecGroup.ICTreeSpecGroupItems)
            {
                if (!dto.TreeSpecIds.Contains(treeSpecGroupItem.FK_ICTreeSpecID))
                {
                    await _unitOfWork.GetRepository <ICTreeSpecGroupItem>().DeleteAsync(treeSpecGroupItem);
                }
            }

            foreach (var treeSpecId in dto.TreeSpecIds)
            {
                if (treeSpecGroup.ICTreeSpecGroupItems.All(x => x.FK_ICTreeSpecID != treeSpecId))
                {
                    await _unitOfWork.GetRepository <ICTreeSpecGroupItem>()
                    .InsertAsync(
                        new ICTreeSpecGroupItem
                    {
                        FK_ICTreeSpecID      = treeSpecId,
                        FK_ICTreeSpecGroupID = dto.Id
                    });
                }
            }

            await _unitOfWork.CompleteAsync();

            return(await GetTreeSpecGroupAsync(dto.Id));
        }
Пример #2
0
        public async Task <IActionResult> EditTreeSpecGroupAsync([FromBody] EditTreeSpecGroupDto dto)
        {
            var result = await _treeSpecGroupService.EditTreeSpecGroupAsync(dto);

            return(Success(result));
        }