コード例 #1
0
        public async Task <ActionResult <LinkResource> > CheckForLinkOccuranceAsync(string name)
        {
            var tag = await _tagService.CheckForTagOccuranceAsync(name);

            var tagResource = _mapper.Map <Tag, TagResource>(tag);

            return(Ok(tagResource));
        }
コード例 #2
0
        public async Task <ActionResult <SaveLinkResource> > CreateLink([FromBody] SaveLinkResource saveLinkResource)
        {
            //ClaimsPrincipal currentUser = this.User;
            //if (!currentUser.Claims.Any())
            //    return Unauthorized();
            //userId = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;

            var validator        = new SaveLinkResourceValidator();
            var validationResult = await validator.ValidateAsync(saveLinkResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var linkToCreate = _mapper.Map <SaveLinkResource, Link>(saveLinkResource);
            var tagToCreate  = _mapper.Map <SaveLinkResource, Tag>(saveLinkResource);

            var link = await _linkService.CheckForLinkOccuranceAsync(linkToCreate.Name);

            if (link == null)
            {
                link = await _linkService.CreateLink(linkToCreate);
            }

            var tag = await _tagService.CheckForTagOccuranceAsync(tagToCreate.Name);

            if (tag == null)
            {
                tag = await _tagService.CreateTag(tagToCreate);
            }

            //if (existingLink != null)
            //{
            await _userLinkService.CreateUserLink(new UserLink { LinkId = link.ID, TagId = tag.ID, UserId = Guid.Parse(userId) });

            //foreach (var item in linkToCreate.Tags)
            //{
            //    await _tagService.CreateTag(new Tag { LinkId = existingLink.ID, Name = item.Name }); // TODO: CreateTagRange
            //}
            //  return Conflict(new { message = $"An existing record with the id '{saveLinkResource.ID}' was already found." });
            //}
            //var newLink = await _linkService.CreateLink(linkToCreate);
            // await _userLinkService.CreateUserLink(new UserLink { LinkId = newLink.ID, UserId = Guid.Parse(userId) });
            // var link = await _linkService.GetLinkById(newLink.ID);
            // var linkResource = _mapper.Map<Link, LinkResource>(newLink);

            return(Ok());
        }