/// <summary> /// The Binddata method on this User Control is used to /// obtain a DataReader of picture information from the Pictures /// table, and then databind the results to a templated DataList /// server control. It uses the Rainbow.PictureDB() /// data component to encapsulate all data functionality. /// </summary> private void BindData(int page) { PicturesDB pictures = new PicturesDB(); DataSet dsPictures = pictures.GetPicturesPaged(ModuleID, page, Int32.Parse(Settings["PicturesPerPage"].ToString()), Version); if (dsPictures.Tables.Count > 0 && dsPictures.Tables[0].Rows.Count > 0) { pgPictures.RecordCount = (int)(dsPictures.Tables[0].Rows[0]["RecordCount"]); } dlPictures.DataSource = dsPictures; dlPictures.DataBind(); }
/// <summary> /// The Page_Load event handler on this Page is used to /// obtain obtain the contents of a picture from the /// Pictures table, construct an HTTP Response of the /// correct type for the picture, and then stream the /// picture contents to the response. It uses the /// Rainbow.PictureDB() data component to encapsulate /// the data access functionality. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack && ModuleID > 0 && ItemID > 0) { // Obtain a single row of picture information PicturesDB pictures = new PicturesDB(); WorkFlowVersion version = Request.QueryString["wversion"] == "Staging" ? WorkFlowVersion.Staging : WorkFlowVersion.Production; SqlDataReader dr = pictures.GetSinglePicture(ItemID, version); PictureItem pictureItem; XmlDocument metadata = new XmlDocument(); try { // Read first row from database if (dr.Read()) { pictureItem = (PictureItem)Page.LoadControl(Rainbow.Settings.Path.ApplicationRoot + "/Design/PictureLayouts/" + moduleSettings["ImageLayout"]); metadata.LoadXml((string)dr["MetadataXml"]); XmlAttribute albumPath = metadata.CreateAttribute("AlbumPath"); albumPath.Value = ((SettingItem)moduleSettings["AlbumPath"]).FullPath; XmlAttribute itemID = metadata.CreateAttribute("ItemID"); itemID.Value = ((int)dr["ItemID"]).ToString(); XmlAttribute moduleID = metadata.CreateAttribute("ModuleID"); moduleID.Value = this.ModuleID.ToString(); XmlAttribute wVersion = metadata.CreateAttribute("WVersion"); wVersion.Value = version.ToString(); if (dr["PreviousItemID"] != System.DBNull.Value) { XmlAttribute previousItemID = metadata.CreateAttribute("PreviousItemID"); previousItemID.Value = ((int)dr["PreviousItemID"]).ToString(); metadata.DocumentElement.Attributes.Append(previousItemID); } if (dr["NextItemID"] != System.DBNull.Value) { XmlAttribute nextItemID = metadata.CreateAttribute("NextItemID"); nextItemID.Value = ((int)dr["NextItemID"]).ToString(); metadata.DocumentElement.Attributes.Append(nextItemID); } metadata.DocumentElement.Attributes.Append(albumPath); metadata.DocumentElement.Attributes.Append(itemID); metadata.DocumentElement.Attributes.Append(moduleID); metadata.DocumentElement.Attributes.Append(wVersion); if (version == WorkFlowVersion.Production) { XmlNode modifiedFilenameNode = metadata.DocumentElement.SelectSingleNode("@ModifiedFilename"); XmlNode thumbnailFilenameNode = metadata.DocumentElement.SelectSingleNode("@ThumbnailFilename"); modifiedFilenameNode.Value = modifiedFilenameNode.Value.Replace(".jpg", ".Production.jpg"); thumbnailFilenameNode.Value = thumbnailFilenameNode.Value.Replace(".jpg", ".Production.jpg"); } pictureItem.Metadata = metadata; pictureItem.DataBind(); Picture.Controls.Add(pictureItem); } } catch { lblError.Visible = true; Picture.Visible = false; return; } finally { // Close datareader dr.Close(); } this.DataBind(); } }