public async Task <ActionResult <LinkResource> > CheckForLinkOccuranceAsync(string name) { var tag = await _tagService.CheckForTagOccuranceAsync(name); var tagResource = _mapper.Map <Tag, TagResource>(tag); return(Ok(tagResource)); }
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()); }