示例#1
0
        /// <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();
        }
示例#2
0
        /// <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();
            }
        }