public static List <VideoAlternative> List(int frameId) { List <VideoAlternative> list = null; string sql = string.Format( "SELECT c.ContentId, Name, convert(varbinary(256),Data) Chunk, c.Version FROM VideoAlternative a INNER JOIN Content c ON c.ContentId=a.ContentId WHERE a.FrameId={0};", frameId ); using (DataSet ds = DataAccess.RunSql(sql)) { int count = ds.Tables[0].Rows.Count; list = new List <VideoAlternative>(count); if (count > 0) { list.Capacity = count; foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["Chunk"] != DBNull.Value) { VideoAlternative va = new VideoAlternative(); va._initFromRow(dr); va.CacheKey = va.cacheKeyForVideoId(frameId); list.Add(va); } } } } return(list); }
private void _init() { using (SqlCommand cmd = new SqlCommand() { CommandType = CommandType.Text, CommandText = "SELECT TOP 1 * FROM Video WHERE FrameId=@frameId", }) { cmd.Parameters.AddWithValue("@frameId", FrameId); cmd.ExecuteReaderExt((dr) => { PlayMuted = dr.Boolean("PlayMuted"); AutoLoop = dr.Boolean("AutoLoop"); return(false); }); } VideoAlternatives = VideoAlternative.List(FrameId); NoVideoSupport = DisplayMonkey.Language.Resources.BrowserNoVideoSupport; }
private void _init() { string sql = string.Format( "SELECT TOP 1 * FROM Video WHERE FrameId={0};", FrameId ); using (DataSet ds = DataAccess.RunSql(sql)) { if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { DataRow dr = ds.Tables[0].Rows[0]; PlayMuted = dr.Boolean("PlayMuted"); AutoLoop = dr.Boolean("AutoLoop"); VideoAlternatives = VideoAlternative.List(FrameId); } } NoVideoSupport = DisplayMonkey.Language.Resources.BrowserNoVideoSupport; }
public static List <VideoAlternative> List(int frameId) { List <VideoAlternative> list = new List <VideoAlternative>(); using (SqlCommand cmd = new SqlCommand() { CommandType = CommandType.Text, CommandText = "SELECT a.FrameId, c.ContentId, Name, convert(varbinary(256),Data) Chunk, c.Version FROM VideoAlternative a " + "INNER JOIN Content c ON c.ContentId=a.ContentId WHERE a.FrameId=@frameId", }) { cmd.Parameters.AddWithValue("@frameId", frameId); cmd.ExecuteReaderExt((dr) => { VideoAlternative va = new VideoAlternative(); va._initFromRow(dr); list.Add(va); return(true); }); } return(list); }
public override async Task ProcessRequestAsync(HttpContext context) { HttpRequest Request = context.Request; HttpResponse Response = context.Response; byte[] data = null; string mediaName = ""; int frameId = Request.IntOrZero("frame"); int contentId = Request.IntOrZero("content"); try { Video video = new Video(frameId); VideoAlternative va = new VideoAlternative(video, contentId); if (va.ContentId != 0) { data = await HttpRuntime.Cache.GetOrAddAbsoluteAsync( va.CacheKey, async (expire) => { expire.When = DateTime.Now.AddMinutes(video.CacheInterval); Content content = await Content.GetDataAsync(va.ContentId); if (content == null) { return(null); } mediaName = content.Name; return(content.Data); }); } } catch (Exception ex) { throw new HttpException(500, ex.Message); } if (data == null) { throw new HttpException(404, "File is empty"); } else { string mimeType = null; try { if (null == (mimeType = MimeTypeParser.GetMimeTypeRaw(data))) { if (null == (mimeType = MimeTypeParser.GetMimeTypeFromRegistry(mediaName))) { if (null == (mimeType = MimeTypeParser.GetMimeTypeFromList(mediaName))) { mimeType = "application/octet-stream"; } } } } catch { mimeType = "application/octet-stream"; } Response.ContentType = mimeType; Response.AddHeader("Content-Disposition", string.Format( "attachment; filename=\"{0}\"", mediaName )); Response.AddHeader("Content-Length", data.Length.ToString()); } Response.BinaryWrite(data); Response.Flush(); }
public void ProcessRequest(HttpContext context) { HttpRequest Request = context.Request; HttpResponse Response = context.Response; byte[] data = null; string mediaName = ""; int frameId = DataAccess.IntOrZero(Request.QueryString["frame"]); int contentId = DataAccess.IntOrZero(Request.QueryString["content"]); try { Video video = new Video(frameId); VideoAlternative va = new VideoAlternative(video, contentId); if (va.ContentId != 0) { data = HttpRuntime.Cache.GetOrAddAbsolute( va.CacheKey, () => { Content content = new Content(va.ContentId); if (content.ContentId == 0) return null; mediaName = content.Name; return content.Data; }, DateTime.Now.AddMinutes(video.CacheInterval) ); } } catch (Exception ex) { throw new HttpException(500, ex.Message); } if (data == null) { throw new HttpException(404, "File is empty"); } else { string mimeType = null; try { if (null == (mimeType = MimeTypeParser.GetMimeTypeRaw(data))) { if (null == (mimeType = MimeTypeParser.GetMimeTypeFromRegistry(mediaName))) { if (null == (mimeType = MimeTypeParser.GetMimeTypeFromList(mediaName))) { mimeType = "application/octet-stream"; } } } } catch { mimeType = "application/octet-stream"; } Response.ContentType = mimeType; Response.AddHeader("Content-Disposition", string.Format( "attachment; filename=\"{0}\"", mediaName )); Response.AddHeader("Content-Length", data.Length.ToString()); } Response.BinaryWrite(data); Response.Flush(); }
public static List<VideoAlternative> List(int frameId) { List<VideoAlternative> list = null; string sql = string.Format( "SELECT c.ContentId, Name, convert(varbinary(256),Data) Chunk, c.Version FROM VideoAlternative a INNER JOIN Content c ON c.ContentId=a.ContentId WHERE a.FrameId={0};", frameId ); using (DataSet ds = DataAccess.RunSql(sql)) { int count = ds.Tables[0].Rows.Count; list = new List<VideoAlternative>(count); if (count > 0) { list.Capacity = count; foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["Chunk"] != DBNull.Value) { VideoAlternative va = new VideoAlternative(); va._initFromRow(dr); va.CacheKey = va.cacheKeyForVideoId(frameId); list.Add(va); } } } } return list; }