Esempio n. 1
0
        public async Task <IActionResult> CutLink(string originalLink)
        {
            //фабрика сокращённых ссылок
            var manager = new LinkManager();

            //Новая ссылка
            var link = manager.Cut(originalLink); //

            if (link == null)                     //Проверка на соответствие ссылки формату
            {
                ViewBag.Message = "Ошибка: Введённая строка не соответствует формату URL";
                return(View("Index"));
            }

            if (!User.Identity.IsAuthenticated)                   //Если пользователь не аутентифицирован
            {
                link.User = await db.Users.FirstOrDefaultAsync(); //Используется анонимный пользователь
            }
            else
            {
                link.User = await db.Users.Where(u => u.Email == User.Identity.Name).FirstOrDefaultAsync(); //Иначе ссылка связывается с пользователем
            }
            await db.Links.AddAsync(link);

            await db.SaveChangesAsync();

            return(View(link));
        }