Home
Manage Your Code
Snippet: Image Gallery and AdRotator (C#)
Title: Image Gallery and AdRotator Language: C#
Description: Add images via a form to an image datalist or create/append an XML file which is used by an AdRotator control. Views: 277
Author: James Lynch Date Added: 7/13/2008
Copy Code  
1using System;
2using System.Xml;
3using System.IO;
4
5partial class WebUserControl : System.Web.UI.UserControl
6{
7   public void Page_Load(Object sender, EventArgs e)
8    {
9        btnImage.Click += (Button_Click);
10    }
11
12   protected bool imageIsAd;
13
14   protected void AdRadio_CheckedChanged(object sender, EventArgs e)
15   {
16       imageIsAd = true;
17   }
18
19   protected void GalleryRadio_CheckedChanged(object sender, EventArgs e)
20   {
21       imageIsAd = false;
22   }
23   
24    public void Button_Click(object sender, EventArgs e)
25    {
26        if (!imageUpload.HasFile) return;
27
28        if (!imageIsAd)
29        {
30            var filePath = "~/Assets/Images/" + imageUpload.FileName;
31            imageUpload.SaveAs(MapPath(filePath));
32        }
33
34        var adPath = "~/Assets/Ads/" + imageUpload.FileName;
35        imageUpload.SaveAs(MapPath(adPath));
36        WriteXml();
37        ImageLink.Text = String.Empty;
38        AltText.Text = String.Empty;
39    }
40
41
42
43        void Page_PreRender()
44        {
45            var imgFolder = MapPath("~/Assets/Images/");
46            var dir = new DirectoryInfo(imgFolder);
47            dlstImages.DataSource = dir.GetFiles();
48            dlstImages.DataBind();
49        }
50
51        protected void WriteXml()
52        {
53            if (!imageIsAd) return;
54            System.Drawing.Image UppedImage = System.Drawing.Image.FromStream(imageUpload.PostedFile.InputStream);
55            float UploadedImageWidth = UppedImage.PhysicalDimension.Width;
56            float UploadedImageHeight = UppedImage.PhysicalDimension.Height;
57            var imagePath = "~/Assets/Ads/" + imageUpload.FileName;
58            // *Insert* var xmlFile = Absolute Path of XML file (use Literal)
59            var xmlFileInfo = new FileInfo(xmlFile);
60
61            if (!xmlFileInfo.Exists)
62            {
63                var writer = new XmlTextWriter(xmlFile, null);
64                writer.WriteStartDocument();
65                writer.WriteRaw("\n");
66                writer.WriteStartElement("Advertisements");
67                writer.WriteRaw("\n");
68                writer.WriteStartElement("Ad");
69                writer.WriteRaw("\n");
70                writer.WriteStartElement("", "ImageUrl", "");
71                writer.WriteString(imagePath);
72                writer.WriteEndElement();
73                writer.WriteRaw("\n");
74                writer.WriteStartElement("", "Width", "");
75                writer.WriteString(UploadedImageWidth.ToString());
76                writer.WriteEndElement();
77                writer.WriteRaw("\n");
78                writer.WriteStartElement("", "Height", "");
79                writer.WriteString(UploadedImageHeight.ToString());
80                writer.WriteEndElement();
81                writer.WriteRaw("\n");
82                writer.WriteStartElement("", "NavigateUrl", "");
83                writer.WriteString(ImageLink.Text);
84                writer.WriteEndElement();
85                writer.WriteRaw("\n");
86                writer.WriteStartElement("", "AlternateText", "");
87                writer.WriteString(AltText.Text);
88                writer.WriteEndElement();
89                writer.WriteRaw("\n");
90                writer.WriteEndElement();
91                writer.WriteRaw("\n");
92                writer.WriteEndElement();
93                writer.WriteRaw("\n");
94                writer.WriteEndDocument();
95                writer.Close();
96            }
97
98            else
99            {
100                var xdoc = new XmlDocument();
101                xdoc.Load(xmlFile);
102                var adverts = xdoc.SelectSingleNode("Advertisements");
103
104                XmlElement ad = xdoc.CreateElement("Ad");
105                XmlElement img = xdoc.CreateElement("ImageUrl");
106                img.InnerText = imagePath;
107                XmlElement width = xdoc.CreateElement("Width");
108                width.InnerText = UploadedImageWidth.ToString();
109                XmlElement height = xdoc.CreateElement("Height");
110                height.InnerText = UploadedImageHeight.ToString();
111                XmlElement navUrl = xdoc.CreateElement("NavigateUrl");
112                navUrl.InnerText = ImageLink.Text;
113                XmlElement xaltText = xdoc.CreateElement("AlternateText");
114                xaltText.InnerText = AltText.Text;
115
116                adverts.AppendChild(ad);
117                ad.AppendChild(img);
118                ad.AppendChild(width);
119                ad.AppendChild(height);
120                ad.AppendChild(navUrl);
121                ad.AppendChild(xaltText);
122                xdoc.Save(xmlFile);
123            }
124        }
125}
126