Wednesday, January 19, 2011

Report CSV download

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace
{
public partial class CompetitionsList : System.Web.UI.Page
{
tCompetitionsTableAdapter taCompetition = new tCompetitionsTableAdapter();
tCompetitionEntriesTableAdapter adCompetitionEntries = new tCompetitionEntriesTableAdapter();
tCompetitionOpenEntriesTableAdapter adOpenCompetitionEntries = new tCompetitionOpenEntriesTableAdapter();

protected void Page_Load(object sender, EventArgs e)
{
Master.AppendCssClassToContainerDiv("page-competitionsManagement");
}

protected void rptCompetitions_ItemCommand(object source, RepeaterCommandEventArgs e)
{
switch (e.CommandName.ToLowerInvariant())
{
case "download":
StringBuilder sbCSV = new StringBuilder();
sbCSV.AppendLine("Title, First Name, Last Name, Baby First Name, Baby Age, Email Address, Postcode, Address, Address Ln2, Address Ln3, Town, County, Country");

CompetitionsEntity.tCompetitionsDataTable dtCompetition = taCompetition.GetData(int.Parse(e.CommandArgument.ToString()));

if (dtCompetition.Count > 0)
{
if (((CompetitionsEntity.tCompetitionsRow)dtCompetition.Rows[0]).IsBabyClub == true)
{
CompetitionsEntity.tCompetitionEntriesDataTable privateEntries = adCompetitionEntries.GetDataByCompetitionId(int.Parse(e.CommandArgument.ToString()));

foreach (CompetitionsEntity.tCompetitionEntriesRow trCompetitions in privateEntries.Rows)
{

sbCSV.Append(trCompetitions.IsTitleNull() ? "" : trCompetitions.Title);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourFirstNameNull() ? "" : trCompetitions.YourFirstName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourLastNameNull() ? "" : trCompetitions.YourLastName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourBabyFirstNameNull() ? "" : trCompetitions.YourBabyFirstName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourBabyAgeNull() ? 0 : trCompetitions.YourBabyAge);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsEmailAddressNull() ? "" : trCompetitions.EmailAddress);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsPostcodeNull() ? "" : trCompetitions.Postcode);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddressNull() ? "" : trCompetitions.Address);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddress2Null() ? "" : trCompetitions.Address2);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddress3Null() ? "" : trCompetitions.Address3);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsTownNull() ? "" : trCompetitions.Town);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsCountyNull() ? "" : trCompetitions.County);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsCountryNull() ? "" : trCompetitions.Country);
sbCSV.AppendLine();
}
}
else if (((CompetitionsEntity.tCompetitionsRow)dtCompetition.Rows[0]).IsBabyClub == false)
{
CompetitionsEntity.tCompetitionOpenEntriesDataTable publicEntries = adOpenCompetitionEntries.GetDataByCompetitionId(int.Parse(e.CommandArgument.ToString()));

foreach (CompetitionsEntity.tCompetitionOpenEntriesRow trCompetitions in publicEntries.Rows)
{

sbCSV.Append(trCompetitions.IsTitleNull() ? "" : trCompetitions.Title);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourFirstNameNull() ? "" : trCompetitions.YourFirstName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourLastNameNull() ? "" : trCompetitions.YourLastName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourBabyFirstNameNull() ? "" : trCompetitions.YourBabyFirstName);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsYourBabyAgeNull() ? 0 : trCompetitions.YourBabyAge);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsEmailAddressNull() ? "" : trCompetitions.EmailAddress);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsPostcodeNull() ? "" : trCompetitions.Postcode);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddressNull() ? "" : trCompetitions.Address);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddress2Null() ? "" : trCompetitions.Address2);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsAddress3Null() ? "" : trCompetitions.Address3);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.Town);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsCountyNull() ? "" : trCompetitions.County);
sbCSV.Append(",");
sbCSV.Append(trCompetitions.IsCountryNull() ? "" : trCompetitions.Country);
sbCSV.AppendLine();
}
}

Response.Clear();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=HCP_CompetitionData_" + DateTime.Now.ToString("yyyyMMddmmss") + ".csv");
Response.Write(sbCSV.ToString());
Response.End();
}

break;
}

rptCompetitions.DataBind();
}


}
}

No comments: