public async Task <TagDto> GetById(int id) { var tag = await _repository.GetById(id); var tagDto = _mapper.Map <TagDto>(tag); return(tagDto); }
public async Task Update(int id, UpdateInventoryItemDto updateInventoryItemDto) { var itemToUpdate = await _repository.GetById(id); if (updateInventoryItemDto == null || itemToUpdate == null) { throw new ArgumentNullException(); } _mapper.Map(updateInventoryItemDto, itemToUpdate); await _repository.Update(itemToUpdate); if (updateInventoryItemDto.Tags != null) { foreach (var inventoryItemTag in updateInventoryItemDto.Tags) { if (await _inventoryItemTagsRepository.FindByInventoryItemIdAndTagId(itemToUpdate.Id, inventoryItemTag.Id) is null) { await _inventoryItemTagsRepository.Create(new InventoryItemTag() { InventoryItemId = itemToUpdate.Id, TagId = inventoryItemTag.Id }); } } } var allCurrentItemTags = await _inventoryItemTagsRepository.FindAllByInventoryItemId(itemToUpdate.Id); foreach (var currentItemTag in allCurrentItemTags) { var tagDto = _mapper.Map <TagDto>(await _tagRepository.GetById(currentItemTag.TagId)); if (!updateInventoryItemDto.Tags.Any(x => x.Id == tagDto.Id)) { await _inventoryItemTagsRepository.Delete(await _inventoryItemTagsRepository.GetById(currentItemTag.Id)); } } }
public TagsViewModel GetById(int id) { return(_mapper.Map <TagsViewModel>(_tagsRepository.GetById(id))); }