public async Task <ActionResult> GetShareUrl(string type, string id) { switch (type) { case "skin": var skin = DataContext.Skins.FirstOrDefault(x => x.GeneratedId == id); if (skin != null) { skin.ShareUrl = await BitlyHelper.TryGenerateUrl(Url.RouteUrl("Preview", new { skinId = id }, "https")); DataContext.SaveChanges(); return(Json(skin.ShareUrl, JsonRequestBehavior.AllowGet)); } goto default; case "pinglist": var pinglist = DataContext.Pinglists.FirstOrDefault(x => x.GeneratedId == id); if (pinglist != null) { pinglist.ShareUrl = await BitlyHelper.TryGenerateUrl(Url.RouteUrl("PinglistDirect", new { listId = id }, "https")); DataContext.SaveChanges(); return(Json(pinglist.ShareUrl, JsonRequestBehavior.AllowGet)); } goto default; default: return(HttpNotFound()); } }