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); }
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); } }