Пример #1
0
        public static ShortUrl Create(ShortUrlDto dto)
        {
            // Eğer üretilmek istenen original url kalıcı bir bağlantıysa,
            // ve daha önce aynı original url için kalıcı bir bağlantı oluşturulmuşsa
            // yeni bir bağlantı oluşturmak yerine varolanı döndür.
            // Kullanıcı bazlı olarak!.

            var shortUrlRecord = db.ShortUrls.FirstOrDefault(x =>
                                                             x.OriginalUrl == dto.OriginalUrl &&
                                                             x.ApiKeyId == dto.ApiKeyId &&
                                                             x.isPermanent == dto.isPermanent
                                                             );

            if (shortUrlRecord != null)
            {
                return(shortUrlRecord);
            }


            var newShortUrl = new ShortUrl()
            {
                OriginalUrl = dto.OriginalUrl,
                Url         = UniqueId.Generate(),
                isPermanent = dto.isPermanent,
                CreatorId   = dto.CreatorId,
                ApiKeyId    = dto.ApiKeyId,
                CreatedAt   = DateTime.Now,
                ExpiresAt   = DateTime.Now.AddDays(dto.Expiration)
            };

            db.ShortUrls.Add(newShortUrl);
            db.SaveChanges();

            return(newShortUrl);
        }
Пример #2
0
        public static ApiKey Create(ApiKeyDto dto)
        {
            var newApiKey = dto.ToEntity();

            db.ApiKeys.Add(newApiKey);

            db.SaveChanges();
            return(newApiKey);
        }
Пример #3
0
        public ActionResult ShortenUrl(string longUrl)
        {
            try
            {
                string shortUrl = "";
                Url    result   = null;
                int    x        = longUrl.LastIndexOf(@"/");
                x = x + 1;
                string token = Guid.NewGuid().ToString().Substring(1, 6);
                shortUrl = longUrl.Substring(0, x) + token;

                result = db.Urls.SingleOrDefault(c => c.ShortenedURL == shortUrl);
                while (result != null)
                {
                    token    = Guid.NewGuid().ToString().Substring(1, 6);
                    shortUrl = longUrl.Substring(0, x) + token;
                    result   = db.Urls.SingleOrDefault(c => c.ShortenedURL == shortUrl);
                }

                Url newUrl = new Url
                {
                    Url1         = longUrl,
                    Token        = token,
                    ShortenedURL = shortUrl,
                    CreatedDate  = DateTime.Now
                };

                db.Urls.Add(newUrl);
                db.SaveChanges();

                ViewBag.sUrl = shortUrl;

                return(View("Index"));
            }
            catch (Exception)
            {
                throw;
            }
        }