using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Globalization; namespace Repository { /// ///

Displays archive list and allows downloading archives.
/// Method modified: Page_Load

///

Copyright (c) 2002 Alexis Grandemange
/// Mail: alexis.grandemange@pagebox.net

///
This program is free software; you can redistribute it and/or
	/// modify it under the terms of the GNU Lesser General Public
	/// License as published by the Free Software Foundation; version
	/// 2.1 of the License.
	/// This library is distributed in the hope that it will be useful,
	/// but WITHOUT ANY WARRANTY; without even the implied warranty of
	/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	/// GNU Lesser General Public License for more details.
	/// A copy of the GNU Lesser General Public License lesser.txt should be
	/// included in the distribution.
///
public class download : System.Web.UI.Page { protected System.Web.UI.WebControls.HyperLink logo; protected System.Web.UI.WebControls.Label LoginLab; protected System.Web.UI.WebControls.HyperLink Support; protected System.Web.UI.WebControls.DataGrid archiveDB; public download() { Page.Init += new System.EventHandler(Page_Init); } /// /// Called on Page load event. /// Builds a list of archives and binds it to archiveDB (DataGrid). /// private void Page_Load(object sender, System.EventArgs e) { ArrayList al = new ArrayList(); IDictionaryEnumerator ide = Global.archRep.archives.GetEnumerator(); while(ide.MoveNext()) { string owner = (string)ide.Value; string arch = (string)ide.Key; string doc = (string)Global.archRep.docs[arch]; string size = "-1"; DateTime dt = new DateTime(0L); if (File.Exists(Global.archRep.downloadPath + arch)) { dt = File.GetLastWriteTime(Global.archRep.downloadPath + arch); FileStream fs = File.Open(Global.archRep.downloadPath + arch, FileMode.Open, FileAccess.Read); size = "" + fs.Length; fs.Close(); } al.Add(new DownloadEntry(arch, Global.archRep.downloadPath + arch, dt.ToString("u", DateTimeFormatInfo.InvariantInfo), owner, doc, size)); } archiveDB.DataSource = al; archiveDB.DataBind(); } private void Page_Init(object sender, EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); } #region Web Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } /// /// Describes an archive. Element of the archive list. /// public sealed class DownloadEntry { /// /// Archive name. /// private string archive; /// /// Archive URL. /// private string archiveURL; /// /// Archive last modified time. /// private string date; /// /// User who published the archive. /// private string owner; /// /// URL of the archive documentation. /// private string doc; /// /// Size of the archive. /// private string size; /// /// Constructor. /// /// Archive name /// Archive URL /// Archive last modified time /// User who published the archive /// URL of the archive documentation /// Size of the archive public DownloadEntry(string a, string u, string t, string o, string d, string s) { archive = a; archiveURL = u; date = t; owner = o; doc = d; size = s; } /// Archive name public string Archive { get { return archive; } } /// Archive name public string ArchiveURL { get { return archiveURL; } } /// Archive last modified time public string Date { get { return date; } } /// User who published the archive public string Owner { get { return owner; } } /// URL of the archive documentation public string Documentation { get { return doc; } } /// Size of the archive public string Size { get { return size; } } } }