コード例 #1
0
ファイル: TagService.cs プロジェクト: maciekgrzela/LosTodos
        public async Task <Response <Tag> > AddTagsToTodoSetAsync(AddTagsToTodoSet addTagsToTodoSet)
        {
            var currentTodoSet = await todoSetRepository.SearchAsync(addTagsToTodoSet.TodoSetId);

            if (currentTodoSet == null)
            {
                return(Response <Tag> .Failure(ResponseResult.ResourceDoesntExist, $"Lista zadań o id:{addTagsToTodoSet.TodoSetId} nie została znaleziona"));
            }

            foreach (var tag in addTagsToTodoSet.Tags)
            {
                var currentTag = await tagRepository.SearchByNameAsync(tag);

                if (currentTag == null)
                {
                    var tempTag = new Tag {
                        Id = Guid.NewGuid(), Name = tag
                    };

                    var response = await SaveAsync(tempTag);

                    if (!response.Succeed)
                    {
                        return(Response <Tag> .Failure(response.Result, response.ErrorMessage));
                    }

                    currentTag = tempTag;
                }

                var entity = new TodoSetTags
                {
                    TodoSet = currentTodoSet,
                    Tag     = currentTag
                };

                await todoSetTagRepository.SaveAsync(entity);
            }

            await unitOfWork.CommitTransactionAsync();

            return(Response <Tag> .Success(ResponseResult.Updated));
        }
コード例 #2
0
 public async System.Threading.Tasks.Task SaveAsync(TodoSetTags todoSetTags)
 {
     await context.TodoSetTags.AddAsync(todoSetTags);
 }