private string createCellContents(string directURL, string queryStringKey, string queryStringValue, Transcoder transcoder) { StringBuilder output = new StringBuilder(); HtmlTextWriter writer = new HtmlTextWriter(new System.IO.StringWriter(output)); // direct HyperLink direct = new HyperLink(); direct.NavigateUrl = directURL; direct.Text = "Direct"; direct.RenderControl(writer); // dynamic stream types Dictionary<string, string> pages = new Dictionary<string, string>(); pages["VLC"] = "VLC.aspx"; pages["M3U"] = "Playlist.aspx"; pages["HTML5"] = "HTML5.aspx"; // and render them int i = 1; foreach (KeyValuePair<string, string> page in pages) { HyperLink link = new HyperLink(); NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty); queryString["transcoder"] = transcoder.Id.ToString(); queryString[queryStringKey] = queryStringValue; link.NavigateUrl = page.Value + "?" + queryString.ToString(); link.Text = page.Key; output.Append(i % 2 == 1 ? " - " : "<br />"); link.RenderControl(writer); i++; } return output.ToString(); }
private string CreateStreamUrl(string idKey, int idValue, string username, string password, Transcoder transcoder) { UriBuilder uri; try { // use HttpContext.Current if available string path = System.IO.Path.GetDirectoryName(HttpContext.Current.Request.Url.AbsolutePath); uri = new UriBuilder(HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, path); } catch (Exception) { uri = new UriBuilder(config.SiteRoot); } // add port if needed if (config.UseWebserver && config.Port != 80) uri.Port = config.Port; // parameters NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty); queryString[idKey] = idValue.ToString(); queryString["transcoder"] = transcoder.Id.ToString(); if(username != string.Empty && config.EnableAuthentication) queryString["login"] = Authentication.createLoginArgument(username, password); // create if (uri.Path.Substring(uri.Path.Length - 1) != "/") uri.Path += "/"; uri.Path += "Stream.ashx"; uri.Query = queryString.ToString(); return uri.ToString(); }