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)); }
public async Task <IActionResult> EditTreeSpecGroupAsync([FromBody] EditTreeSpecGroupDto dto) { var result = await _treeSpecGroupService.EditTreeSpecGroupAsync(dto); return(Success(result)); }