Пример #1
0
        public IActionResult ShortURLNotLogin(ShortUrls url)
        {
            string URL  = "";
            Random rand = new Random();

            for (int i = 0; i < 11; i++)
            {
                int random = rand.Next(0, 3);
                if (random == 1)
                {
                    random = rand.Next(0, numbers.Count);
                    URL   += numbers[random].ToString();
                }
                else
                {
                    random = rand.Next(0, characters.Count);
                    URL   += characters[random].ToString();
                }
            }
            var x = new ShortUrls
            {
                Title     = url.Title,
                ShortUrl  = URL,
                Url       = url.Url,
                UserId    = 0,
                CreatedAt = DateTime.Now
            };

            _AppDbContext.Add(x);
            _AppDbContext.SaveChanges();
            return(Ok(new { shorturl = URL }));
        }
Пример #2
0
        public async Task <IActionResult> Save(EditViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(await Edit(model));
            }

            var groupInfo = _userHelperService.GetSelectedGroup(User);

            ShortUrls shortUrl = null;

            if (!model.Id.HasValue)
            {
                shortUrl = new ShortUrls()
                {
                    IdGroup = groupInfo.Key,
                    DtAdd   = DateTime.UtcNow
                };
                await _context.ShortUrls.AddAsync(shortUrl);
            }
            else
            {
                shortUrl = await _context.ShortUrls.FindAsync(model.Id.Value);
            }

            shortUrl.Name                 = model.Name;
            shortUrl.RedirectTo           = model.RedirectTo;
            shortUrl.IsSubscriberRequired = model.IsSubscriberRequired;
            shortUrl.IsSingleClick        = model.IsSingleClick;
            shortUrl.IdChain              = (model.AddToChain && model.IsSubscriberRequired) ? model.IdChain : null;

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Пример #3
0
        public IActionResult ShortURL(ShortUrls url)
        {
            var token = Request.Headers["Authorization"];

            token = token.ToString().Substring(7);
            var jwtSecrTokenHandler = new JwtSecurityTokenHandler();
            var secrToken           = jwtSecrTokenHandler.ReadToken(token) as JwtSecurityToken;
            var username            = secrToken?.Claims.First(claim => claim.Type == "sub").Value;

            Console.WriteLine(token);
            Console.WriteLine(username);
            Console.WriteLine(Request.Cookies["username"]);
            Console.WriteLine("COBA");
            Console.WriteLine(url.ShortUrl);
            Console.WriteLine("COBA");


            var cookie = "";

            if (Request.Cookies["Username"] != null)
            {
                cookie = Request.Cookies["Username"];
            }
            var id          = from i in _AppDbContext.users where i.Username == username select i;
            int idUserLogin = 0;

            foreach (var i in id)
            {
                idUserLogin = i.Id;
            }
            if (url.ShortUrl == "")
            {
                string URL  = "";
                Random rand = new Random();
                for (int i = 0; i < 11; i++)
                {
                    int random = rand.Next(0, 3);
                    if (random == 1)
                    {
                        random = rand.Next(0, numbers.Count);
                        URL   += numbers[random].ToString();
                    }
                    else
                    {
                        random = rand.Next(0, characters.Count);
                        URL   += characters[random].ToString();
                    }
                }
                var x = new ShortUrls
                {
                    Title     = url.Title,
                    ShortUrl  = URL,
                    Url       = url.Url,
                    UserId    = idUserLogin,
                    CreatedAt = DateTime.Now
                };
                _AppDbContext.Add(x);
                _AppDbContext.SaveChanges();
                return(Ok(new { shorturl = URL }));
            }
            else
            {
                string URL = url.ShortUrl;
                var    x   = new ShortUrls
                {
                    Title     = url.Title,
                    ShortUrl  = url.ShortUrl,
                    Url       = url.Url,
                    UserId    = idUserLogin,
                    CreatedAt = DateTime.Now
                };
                _AppDbContext.Add(x);
                _AppDbContext.SaveChanges();
                return(Ok(new { shorturl = url.ShortUrl }));
            }
        }