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); }
public static ApiKey Create(ApiKeyDto dto) { var newApiKey = dto.ToEntity(); db.ApiKeys.Add(newApiKey); db.SaveChanges(); return(newApiKey); }
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; } }