public async Task <Url> AddUrl(string link)
        {
            var exitEntity = await GetUrl(link);

            BuildEntity(link, exitEntity, out Url entity);

            _context.Add(entity);

            if (!CheckIsExistsInUrlVisitorsCounters(entity.LinkCode))
            {
                var urlVisitorsCounter = new UrlVisitorsCounter(entity.LinkCode);
                _context.Add(urlVisitorsCounter);
            }



            await _context.SaveChangesAsync();

            return(entity);
        }
Exemplo n.º 2
0
        public string[] Create(string linkUrl)
        {
            string[] url;
            Regex    regex;
            string   pattern2 = @"(http:\/\/|https:\/\/)";

            regex = new Regex(pattern2);
            if (!regex.IsMatch(linkUrl))
            {
                linkUrl = "http://" + linkUrl + "/";
            }
            string pattern = @"(http:\/\/|https:\/\/|www.|\b).{2,}\.\w{2,}(\/|\b)";

            regex = new Regex(pattern);
            if (regex.IsMatch(linkUrl))
            {
                if (FindLongURL(linkUrl) == null)
                {
                    Link link = new Link();
                    link.LongUrl             = linkUrl;
                    link.ShortUrl            = GetShortURL();
                    link.DateCreate          = DateTime.Now;
                    link.NumberOfTransitions = 0;
                    _context.Add(link);
                    _context.SaveChangesAsync();
                    url = new string[2] {
                        "https://" + HttpContext.Request.Host + "/" + link.ShortUrl, "true"
                    };
                    return(url);
                }
                else
                {
                    string shortLink;
                    shortLink = _context.Link.Where(o => o.LongUrl == linkUrl).Select(p => p.ShortUrl).First();
                    url       = new string[2] {
                        "https://" + HttpContext.Request.Host + "/" + shortLink, "false"
                    };
                    return(url);
                }
            }
            else
            {
                url = new string[2] {
                    "Неправильный формат ссылки", "false"
                };
                return(url);
            }
        }