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.
                    }
                }
            }
        }
示例#2
0
        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);
        }