Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
        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"));
        }
Beispiel #3
0
        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"));
        }