示例#1
0
        public async Task <TagDto> GetById(int id)
        {
            var tag = await _repository.GetById(id);

            var tagDto = _mapper.Map <TagDto>(tag);

            return(tagDto);
        }
示例#2
0
        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));
                }
            }
        }
示例#3
0
 public TagsViewModel GetById(int id)
 {
     return(_mapper.Map <TagsViewModel>(_tagsRepository.GetById(id)));
 }