/// <summary> /// Странница для редактирования ссылки. /// </summary> /// <param name="id"> Id ссылки пользователя. </param> /// <returns></returns> public async Task <IActionResult> Edit(int?id) { if (id != null) { CuttLink link = await db.CuttLinks.FindAsync(id); if (link != null) { return(View(link)); } } return(NotFound()); }
public async Task <IActionResult> Edit(CuttLink link) { if (link == null) { return(BadRequest()); } var cuttLink = db.CuttLinks.FindAsync(link.Id).Result; cuttLink.Url = link.Url; cuttLink.DateTime = link.DateTime; await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public IActionResult CreateLink([FromForm] string url) { if (string.IsNullOrWhiteSpace(url)) { ModelState.AddModelError("", "Поле не может быть пустым."); return(View()); } if (!url.Contains("http")) { url = "http://" + url; } var baseUrl = $"{Request.Scheme}://{Request.Host}/"; // Создание базовой ссылки нашего хоста var cut = new Cutter(); var urls = db.CuttLinks.ToList(); if (urls.Count == 0) { cut.GenerateToken(); } else { // проверяем на совпадение токенов // каждый раз создается новый токен while (urls.Exists(u => u.Token == cut.GenerateToken().Token)) { ; } } var cutUrl = new CuttLink { Url = url, Token = cut.Token, ShortUrl = baseUrl + cut.Token }; db.CuttLinks.Add(cutUrl); db.SaveChanges(); return(RedirectToAction("Index")); }