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; }
}
}