Beispiel #1
0
        public void Create_ValidLinkSupplied_CreatesLink()
        {
            var validLink = new Link
            {
                Id  = 4,
                Url = "https://test.com/"
            };

            _applicationDbContext.Setup(a => a.AddLink(validLink));
            _applicationDbContext.Setup(a => a.SaveChanges()).Returns(1);

            var result = _linkRepository.Create(validLink);

            _applicationDbContext.Verify(a => a.AddLink(validLink), Times.Once);
            _applicationDbContext.Verify(a => a.SaveChanges(), Times.Once);
            Assert.True(result);
        }
 public IActionResult Create(HyperLinkModel link)
 {
     if (Regex.IsMatch(link.Link, @"[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)"))
     {
         _repository.Create(link);
         return(RedirectToAction(nameof(Index)));
     }
     return(BadRequest("Niepoprawny link"));
 }
Beispiel #3
0
        public object Post(CreateLinkRequest request)
        {
            var link = request.ConvertTo <Link>();

            link.SessionId = Session.Id;
            link.CreatedAt = DateTime.UtcNow;

            if (link.Key.IsNullOrEmpty())
            {
                var currentIterator = StartKeyLength * 10;
                do
                {
                    ++currentIterator;
                    link.Key = KeyValidator.GenerateKey(currentIterator / 10);
                } while (_linkRepo.KeyExists(link.Key));
            }

            UnitOfWork(() =>
            {
                _linkRepo.Create(link);

                if (request.Tags != null)
                {
                    link.LinkTags = new List <LinkTag>();

                    var tagsDict = _tagRepo.GetTagsDictionary();

                    foreach (var tag in request.Tags)
                    {
                        if (!tagsDict.ContainsKey(tag))
                        {
                            throw HttpError.NotFound($"Tag '{tag}' not found.");
                        }

                        var linkTag = new LinkTag()
                        {
                            LinkId = link.Id,
                            TagId  = tagsDict[tag].Id
                        };

                        link.LinkTags.Add(linkTag);
                    }

                    _linkRepo.SetLinkTags(link.Id, link.LinkTags);
                }

                PublishMessage(new CreateLinkScreenshotRequest()
                {
                    Id = link.Id
                });
            });

            return(_linkRepo.GetLinkResponse(link.Id));
        }
        public async Task <Result> Create(LinkViewModel model)
        {
            try
            {
                return(ModelState.IsValid
                    ? await _repository.Create(LinkViewModel.Get(model))
                    : Result.Failed);
            }
            catch (Exception e)
            {
                await _logger.AddException(e);

                return(Result.Failed);
            }
        }
        public async Task <IActionResult> Create([Bind("Title, URL")] Link link)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    await _linkRepository.Create(link);

                    _toastNotification.AddSuccessToastMessage("Successfully added new link");
                    return(RedirectToAction(nameof(Index)));
                }
            }
            catch (DbUpdateException)
            {
                _toastNotification.AddErrorToastMessage("Something went wrong");
                return(RedirectToAction(nameof(Index)));
            }

            return(RedirectToAction(nameof(Index)));
        }