using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.Common; using System.Data.SqlClient; public partial class eventsListing : System.Web.UI.UserControl { protected string eventdisplaytype = "month"; public string bgColor = "#f7ffea"; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ViewState.Add("bgColor", bgColor); DateTime eventDate = new DateTime(); if (Request.QueryString["calDate"] != "" && Request.QueryString["calDate"] != null) eventDate = DateTime.Parse(Request.QueryString["calDate"]); else eventDate = DateTime.Today; GetEvents(eventDate); } } /// /// Alternates listing row color /// public string GetRowColor() { if (ViewState["bgColor"].ToString() == "#f7ffea") bgColor = "#ffffff"; else bgColor = "#f7ffea"; ViewState.Add("bgColor", bgColor); return bgColor; } /// /// Gets the events by type from the database /// private void GetEvents(DateTime dteventDate) { EventsDb eventsDb = new EventsDb(); string eventDate = dteventDate.ToShortDateString(); if (EventDisplayType == "month") { rpEvents.DataSource = eventsDb.GetEventsByDate(eventDate); } else if (EventDisplayType == "day") { rpEvents.DataSource = eventsDb.GetEventsByDate(eventDate); } else if (EventDisplayType == "exhibitions") { rpEvents.DataSource = eventsDb.GetExhibitions(); } else if (EventDisplayType == "eventsandfestivals") { rpEvents.DataSource = eventsDb.GetEventsAndFestivals(); } else if (EventDisplayType == "festivals") { rpEvents.DataSource = eventsDb.GetFestivals(); } else if (EventDisplayType == "weekly") { rpEvents.DataSource = eventsDb.GetWeeklys(); } else if (EventDisplayType == "market") { rpEvents.DataSource = eventsDb.GetMarkets(); } else if (EventDisplayType == "performance") { rpEvents.DataSource = eventsDb.GetWeeklys(); } else if (EventDisplayType == "independence") { rpEvents.DataSource = eventsDb.GetEventsByHoliday(2); } else if (EventDisplayType == "labor") { rpEvents.DataSource = eventsDb.GetEventsByHoliday(3); } else if (EventDisplayType == "memorial") { rpEvents.DataSource = eventsDb.GetEventsByHoliday(1); } rpEvents.DataBind(); ((SqlDataReader)rpEvents.DataSource).Close(); } /// /// Controls whether labels will be visible /// public void rpEvents_ItemDataBound(Object Sender, RepeaterItemEventArgs e) { // Alternate row background color GetRowColor(); DbDataRecord dbr = (DbDataRecord)e.Item.DataItem; // This event is raised for the header, the footer, separators, and items. // Execute the following logic for Items and Alternating Items. if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (Convert.ToString(DataBinder.Eval(dbr, "ImageFile")) != "") ((Image)e.Item.FindControl("img1")).Visible = true; else ((Image)e.Item.FindControl("img1")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "WebSite")) != "") ((HyperLink)e.Item.FindControl("hlWebSite")).Visible = true; else ((HyperLink)e.Item.FindControl("hlWebSite")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Frequency")) != "") ((Label)e.Item.FindControl("lblFrequency")).Visible = true; else ((Label)e.Item.FindControl("lblFrequency")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Times")) != "") ((Label)e.Item.FindControl("lblTimes")).Visible = true; else ((Label)e.Item.FindControl("lblTimes")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Address")) == "" && Convert.ToString(DataBinder.Eval(dbr, "City")) == "" && Convert.ToString(DataBinder.Eval(dbr, "State")) == "" && Convert.ToString(DataBinder.Eval(dbr, "Location")) == "") ((Label)e.Item.FindControl("lblLocation")).Visible = false; else ((Label)e.Item.FindControl("lblLocation")).Visible = true; if (Convert.ToString(DataBinder.Eval(dbr, "Fees")) != "") ((Label)e.Item.FindControl("lblFees")).Visible = true; else ((Label)e.Item.FindControl("lblFees")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "PurchaseTicketUrl")) != "") ((HyperLink)e.Item.FindControl("hlFees")).Visible = true; else ((HyperLink)e.Item.FindControl("hlFees")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Phone")) != "") ((Label)e.Item.FindControl("lblPhone")).Visible = true; else ((Label)e.Item.FindControl("lblPhone")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Email")) != "") ((Label)e.Item.FindControl("lblEmail")).Visible = true; else ((Label)e.Item.FindControl("lblEmail")).Visible = false; if (Convert.ToString(DataBinder.Eval(dbr, "Circulatorstops")) != "") ((Label)e.Item.FindControl("lblCirculator")).Visible = true; else ((Label)e.Item.FindControl("lblCirculator")).Visible = false; if (MetroStops(DataBinder.Eval(dbr, "EventId")) != "") ((Label)e.Item.FindControl("lblMetroStops")).Visible = true; else ((Label)e.Item.FindControl("lblMetroStops")).Visible = false; } } /// /// Returns listing of metro stops /// public string MetroStops(object inEventId) { int eventId = Int32.Parse(inEventId.ToString()); EventsDb eventsDb = new EventsDb(); SqlDataReader objReader = eventsDb.GetEventMetroStops(eventId); string metroStops = ""; ArrayList al = new ArrayList(); while (objReader.Read()) { if (objReader["MetroStop"] != DBNull.Value) { al.Add(" " + objReader["MetroStop"].ToString()); } } objReader.Close(); Utils utils = new Utils(); metroStops = utils.ArrayListToString(al); return metroStops; } /// /// Returns listing of event dates /// public string EventDates(object inEventId, object inEventDateTypeId, object inFrequency) { int eventId = Int32.Parse(inEventId.ToString()); int eventDateTypeId = System.Convert.ToInt32(inEventDateTypeId.ToString()); string frequency = inFrequency.ToString(); EventsDb eventsDb = new EventsDb(); string eventDates = ""; // range if (eventDateTypeId == 4) { SqlDataReader objReader = eventsDb.GetEventDates(eventId); string startDate = ""; string endDate = ""; while (objReader.Read()) { if (objReader["StartDate"] != DBNull.Value) { try { startDate = DateTime.Parse(objReader["StartDate"].ToString()).ToString("MMM d"); } catch { startDate = ""; } } if (objReader["EndDate"] != DBNull.Value) { try { endDate = " - " + DateTime.Parse(objReader["EndDate"].ToString()).ToString("MMM d"); } catch { endDate = ""; } } eventDates += startDate + endDate + "
"; } objReader.Close(); } else if (eventDateTypeId == 2) // repeating { SqlDataReader objReader = eventsDb.GetEventDays(eventId); string eventDay = ""; string endHour = ""; string eventMonth = ""; while (objReader.Read()) { if (objReader["EventDay"] != DBNull.Value) { eventDay = objReader["EventDay"].ToString(); } if (objReader["EventHour"] != DBNull.Value) { endHour = objReader["EventHour"].ToString(); } if (objReader["EventMonth"] != DBNull.Value) { eventMonth = objReader["EventMonth"].ToString(); } eventDates += eventDay; if (endHour.Length > 0 && eventDay.Length > 0) eventDates += ", " + endHour + " " + eventMonth + "
"; else if (endHour.Length > 0 && eventDay.Length == 0) eventDates += endHour + " " + eventMonth + "
"; } objReader.Close(); } else if (eventDateTypeId == 1) // specific dates { if (frequency.Length > 0) eventDates = frequency; else eventDates = "Various Dates"; } else if (eventDateTypeId == 3) // ongoing { eventDates = "Ongoing"; } return eventDates; } /// /// Builds and returns the full event location /// public string FullLocation(object inAddress, object inCity, object inState, object inLocation) { string address = inAddress.ToString(); string city = inCity.ToString(); string state = inState.ToString(); string location = inLocation.ToString(); string fullLocation = ""; if (location.Length > 0) fullLocation += location + " "; if (address.Length > 0) fullLocation += address; if (city.Length > 0) fullLocation += ", " + city; if (state.Length > 0) fullLocation += ", " + state; return fullLocation; } public string EventDisplayType { get { return eventdisplaytype; } set { eventdisplaytype = value; } } }