protected void rGridDraftPlayer_ItemCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "TestEmail") { try { string strFileName = CSBA.BusinessLogicLayer.Logic.cExcel.CreateSpreadsheet(1031); Attachment att = new Attachment(strFileName); cMail.SendMessage("*****@*****.**", "*****@*****.**", "CSBA Test Email", "Test Body", strFileName, att); } catch (Exception ex) { StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); string errMethod = sf.GetMethod().Name.ToString(); // Get the current method name string errMsg = "600"; // Gotta pass something, we're retro-fitting an existing method Session["LastException"] = ex; // Throw the exception in the session variable, will be used in error page string url = string.Format(ConfigurationManager.AppSettings["ErrorPageURL"], errMethod, errMsg); //Set the URL Response.Redirect(url); // Go to the error page. } } if (e.CommandName == "CreateSpreadsheets") { List <SeasonDomainModel> Seasons = new List <SeasonDomainModel>(); TeamBusinessLogicLayer TeamBLL = new TeamBusinessLogicLayer(); SeasonTeamBusinessLogic SeasonTeamBLL = new SeasonTeamBusinessLogic(); Seasons = SeasonBLL.ListSeason(); int SeasonID = 0; foreach (SeasonDomainModel season in Seasons) { if (season.CurrentSeason == true) { SeasonID = season.SeasonID; break; } } Excel.Application myApp = new Excel.Application(); myApp.Visible = true; Excel.Workbook wb = myApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); List <SeasonTeamDomainModel> listSeasonTeam = SeasonTeamBLL.SeasonTeamOrder(SeasonID); foreach (SeasonTeamDomainModel st in listSeasonTeam) { Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets.Add(); ws.Name = st.TeamName.Trim(); List <v_Team_Draft_RosterDomainModel> ListTeam = TeamBLL.ListTeamRoster(SeasonID, st.TeamID); int iRow = 1; ws.Cells[iRow, 1] = "Primary Position"; ws.Cells[iRow, 2] = "Secondary Position"; ws.Cells[iRow, 3] = "Player Name"; ws.Cells[iRow, 4] = "Points"; iRow++; foreach (v_Team_Draft_RosterDomainModel TDraft in ListTeam) { ws.Cells[iRow, 1] = TDraft.PrimPos.Trim(); if (TDraft.SecPos != null) { ws.Cells[iRow, 2] = TDraft.SecPos.Trim(); } ws.Cells[iRow, 3] = TDraft.PlayerName.Trim(); ws.Cells[iRow, 4] = TDraft.Points; iRow++; } } } if (e.CommandName == "EmailRosters") { string strFileName = CSBA.BusinessLogicLayer.Logic.cExcel.CreateSpreadsheet(Convert.ToInt32(rDDSeason.SelectedValue)); foreach (GridDataItem item in rGridDraftPlayer.Items) { try { StringBuilder sb = new StringBuilder(); TeamBusinessLogicLayer TeamBLL = new TeamBusinessLogicLayer(); RadButton rBTNTeamName = (RadButton)item.FindControl("rBTNTeamName"); Label lblOwnerEmail = (Label)item.FindControl("lblOwnerEmail"); Label lblTeamID = (Label)item.FindControl("lblTeamID"); List <v_Team_Draft_RosterDomainModel> TeamDraft = TeamBLL.ListTeamRoster(Convert.ToInt32(rDDSeason.SelectedValue), Convert.ToInt32(lblTeamID.Text)); sb.Append("<table><p class=border>"); sb.Append("<tr>"); sb.Append("<td><b><p class=border>"); sb.Append("Player Name"); sb.Append("</b></td>"); sb.Append("<td><b><p class=border>"); sb.Append("Primary Position "); sb.Append("</b></td>"); sb.Append("<td><b><p class=border>"); sb.Append("Secondary Position "); sb.Append("</b></td>"); sb.Append("<td><b><p class=border>"); sb.Append("Points "); sb.Append("</b></td>"); foreach (v_Team_Draft_RosterDomainModel TeamPlayer in TeamDraft) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<div align=left><p class=border>"); sb.Append(TeamPlayer.PlayerName.Trim()); sb.Append("</td>"); sb.Append("<td>"); sb.Append("<div align=left><p class=border>"); sb.Append(TeamPlayer.PrimPos.Trim()); sb.Append("</td>"); sb.Append("<td>"); sb.Append("<div align=left><p class=border>"); if (TeamPlayer.SecPos == null) { sb.Append("n/a"); } else { sb.Append(TeamPlayer.SecPos.Trim()); } sb.Append("</td>"); sb.Append("<td>"); sb.Append("<div align=right><p class=border>"); sb.Append(TeamPlayer.Points.ToString().Trim()); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("</table>"); string[,] MergeValues = new string[, ] { { "{TeamName}", rBTNTeamName.Text.Trim() }, { "{TeamRoster}", sb.ToString() } }; //Attachment att = null;// = new Attachment(strFileName); if (strFileName != null) { Attachment att = new System.Net.Mail.Attachment(strFileName, System.Net.Mime.MediaTypeNames.Application.Octet); ContentDisposition disposition = att.ContentDisposition; disposition.CreationDate = File.GetCreationTime(strFileName); disposition.ModificationDate = File.GetLastWriteTime(strFileName); disposition.ReadDate = File.GetLastAccessTime(strFileName); disposition.FileName = Path.GetFileName(strFileName.Trim()); disposition.Size = new FileInfo(strFileName).Length; disposition.DispositionType = DispositionTypeNames.Attachment; cMail.SendMessage("*****@*****.**", lblOwnerEmail.Text.ToString().Trim(), "CSBA Roster", cMail.PopulateBody("~/Content/EmailTemplates/DraftRoster.html", MergeValues), strFileName, att); } } catch (Exception ex) { StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); string errMethod = sf.GetMethod().Name.ToString(); // Get the current method name string errMsg = "600"; // Gotta pass something, we're retro-fitting an existing method Session["LastException"] = ex; // Throw the exception in the session variable, will be used in error page string url = string.Format(ConfigurationManager.AppSettings["ErrorPageURL"], errMethod, errMsg); //Set the URL Response.Redirect(url); // Go to the error page. } } } }
public static string CreateSpreadsheet(int iSeasonID) { SeasonDomainModel season = new SeasonDomainModel(); season.SeasonID = iSeasonID; SeasonTeamBusinessLogic stBLL = new SeasonTeamBusinessLogic(); SeasonTeamPlayerPositionBLL stppBLL = new SeasonTeamPlayerPositionBLL(); List <SeasonTeamDomainModel> listSeasonTeam = stBLL.ListSelectedTeams(season.SeasonID); List <SeasonTeamPlayerDomainModel> listSeasonTeamPlayer = new List <SeasonTeamPlayerDomainModel>(); TeamDomainModel team = new TeamDomainModel(); Excel.Application xlApp = new Excel.Application(); Workbook wb = xlApp.Workbooks.Add(); for (int i = 0; i < listSeasonTeam.Count; i++) { Worksheet sh = wb.Worksheets.Add(); xlApp.ActiveWindow.Zoom = 140; SeasonTeamDomainModel st = listSeasonTeam[i]; team.TeamID = st.TeamID; List <SeasonTeamPlayerPositionDomainModel> stpList = stppBLL.STPP_Detail(season, team); sh.Name = st.TeamName.Trim(); int rowNbr = 1; sh.Cells[rowNbr, "A"].Value2 = "Player Name"; sh.Cells[rowNbr, "A"].ColumnWidth = 30; sh.Cells[rowNbr, "B"].Value2 = "Position"; sh.Cells[rowNbr, "A"].ColumnWidth = 20; sh.Cells[rowNbr, "C"].Value2 = "Points"; sh.Cells[rowNbr, "A"].ColumnWidth = 20; sh.Cells[rowNbr, "A"].Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft; sh.Cells[rowNbr, "B"].Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight; sh.Cells[rowNbr, "C"].Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight; var columnHeadingsRange = sh.Range[sh.Cells[rowNbr, "A"], sh.Cells[rowNbr, "C"]]; columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue; columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite; rowNbr++; foreach (SeasonTeamPlayerPositionDomainModel stp in stpList) { sh.Cells[rowNbr, "A"].Value2 = stp.PlayerName.Trim(); sh.Cells[rowNbr, "B"].Value2 = stp.PositionName.Trim(); sh.Cells[rowNbr, "C"].Value2 = stp.Points; rowNbr++; } } xlApp.DisplayAlerts = false; for (int i = xlApp.ActiveWorkbook.Worksheets.Count; i > 0; i--) { Worksheet wkSheet = (Worksheet)xlApp.ActiveWorkbook.Worksheets[i]; if (wkSheet.Name == "Sheet1") { wkSheet.Delete(); } } xlApp.DisplayAlerts = true; Random random = new Random(); int randomNumber = random.Next(0, 10000); string path = AppDomain.CurrentDomain.BaseDirectory; string CWorkbook = path + randomNumber + ".xlsx "; wb.Application.ActiveWorkbook.CheckCompatibility = false; wb.Application.ActiveWorkbook.SaveAs(CWorkbook, Excel.XlFileFormat.xlOpenXMLWorkbook); wb.Close(true); xlApp.Quit(); return(CWorkbook); }