public ActionResult ViewMembersReportBuild(LeagueReportBuilderModel model) { try { var memId = RDN.Library.Classes.Account.User.GetMemberId(); bool isSec = MemberCache.IsSecretaryOrBetterOfLeague(memId); var league = MemberCache.GetLeagueOfMember(memId); //MembersReportEnum en = new MembersReportEnum(); long reportSelected = 0; if (Int64.TryParse(model.SelectedReport, out reportSelected)) { var oldReport = LeagueReportBuilder.GetReport(league.LeagueId, reportSelected); model.SelectedColumnsHidden = oldReport.leagueReportEnums; model.SaveReport = false; model.SavedReportName = oldReport.Name; } var items = model.SelectedColumnsHidden.Split(','); if (String.IsNullOrEmpty(model.SavedReportName)) model.SavedReportName = "ReportBuilder"; if (model.SaveReport) LeagueReportBuilder.SaveReport(league.LeagueId, model.SelectedColumnsHidden, model.SavedReportName); using (ExcelPackage p = new ExcelPackage()) { try { p.Workbook.Properties.Author = "RDNation.com"; p.Workbook.Properties.Title = "Report For " + league.Name; //we create the first sheet. ExcelWorksheet reportSheet = p.Workbook.Worksheets.Add("Report"); reportSheet.Name = "Report"; //Setting Sheet's name reportSheet.Cells.Style.Font.Size = 11; //Default font size for whole sheet reportSheet.Cells.Style.Font.Name = "Calibri"; //Default Font name for whole sheet int column = 1; int row = 1; foreach (var item in items) { if (!String.IsNullOrEmpty(item)) { MembersReportEnum temp = (MembersReportEnum)Enum.Parse(typeof(MembersReportEnum), item); reportSheet.Cells[row, column].Value = RDN.Portable.Util.Enums.EnumExt.ToFreindlyName(temp); row += 1; for (int i = 0; i < league.LeagueMembers.Count; i++) { switch (temp) { case MembersReportEnum.Phone_Number: if (!league.LeagueMembers[i].Settings.Hide_Phone_Number_From_League || (league.LeagueMembers[i].Settings.Hide_Phone_Number_From_League && isSec)) reportSheet.Cells[row, column].Value = league.LeagueMembers[i].PhoneNumber; else reportSheet.Cells[row, column].Value = "hidden"; break; case MembersReportEnum.Email: if (!league.LeagueMembers[i].Settings.Hide_Email_From_League || (league.LeagueMembers[i].Settings.Hide_Email_From_League && isSec)) reportSheet.Cells[row, column].Value = league.LeagueMembers[i].Email; else reportSheet.Cells[row, column].Value = "hidden"; break; case MembersReportEnum.Birthday: if (!league.LeagueMembers[i].Settings.Hide_DOB_From_League || (league.LeagueMembers[i].Settings.Hide_DOB_From_League && isSec)) reportSheet.Cells[row, column].Value = league.LeagueMembers[i].DOB.ToShortDateString(); else reportSheet.Cells[row, column].Value = "hidden"; break; case MembersReportEnum.CRDI_Insurance_Number: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].InsuranceNumCRDI; break; case MembersReportEnum.Derby_Name: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].DerbyName; break; case MembersReportEnum.Derby_Number: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].PlayerNumber; break; case MembersReportEnum.First_Name: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].Firstname; break; case MembersReportEnum.Inactive_Indicator: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].IsInactiveFromCurrentLeague; break; case MembersReportEnum.Last_Name: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].LastName; break; case MembersReportEnum.Other_Insurance_Number: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].InsuranceNumOther; break; case MembersReportEnum.Skating_Level: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].LeagueClassificationOfSkatingLevel; break; case MembersReportEnum.USARS_Insurance_Number: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].InsuranceNumUsars; break; case MembersReportEnum.WFTDA_Insurance_Number: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].InsuranceNumWftda; break; case MembersReportEnum.Skills_Test_Date: if (league.LeagueMembers[i].Leagues.FirstOrDefault() != null && league.LeagueMembers[i].Leagues.FirstOrDefault().SkillsTestDate.HasValue) reportSheet.Cells[row, column].Value = league.LeagueMembers[i].Leagues.FirstOrDefault().SkillsTestDate.GetValueOrDefault().ToShortDateString(); break; case MembersReportEnum.League_Departure_Date: if (league.LeagueMembers[i].Leagues.FirstOrDefault() != null && league.LeagueMembers[i].Leagues.FirstOrDefault().DepartureDate.HasValue) reportSheet.Cells[row, column].Value = league.LeagueMembers[i].Leagues.FirstOrDefault().DepartureDate.GetValueOrDefault().ToShortDateString(); break; case MembersReportEnum.Day_Job: reportSheet.Cells[row, column].Value = league.LeagueMembers[i].DayJob; break; //case MembersReportEnum.Groups: // reportSheet.Cells[row, column].Value = league.LeagueMembers[i]; // break; } row += 1; } row = 1; column += 1; } } reportSheet.Cells["A1:Z100"].AutoFitColumns(); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } //Generate A File with Random name Byte[] bin = p.GetAsByteArray(); if (String.IsNullOrEmpty(model.SavedReportName)) model.SavedReportName = "ReportBuilder"; string file = model.SavedReportName + "_" + DateTime.UtcNow.ToString("yyyyMMdd") + ".xlsx"; return File(bin, RDN.Utilities.IO.FileExt.GetMIMEType(file), file); } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: "columns:" + model.SelectedColumnsHidden); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww.ToString())); }
public ActionResult ViewMembersReportBuilder() { try { var memId = RDN.Library.Classes.Account.User.GetMemberId(); var league = MemberCache.GetLeagueOfMember(memId); LeagueReportBuilderModel model = new LeagueReportBuilderModel(); model.LeagueName = league.Name; model.LeagueId = league.LeagueId; model.SavedReports = new SelectList(LeagueReportBuilder.GetReports(league.LeagueId), "ReportId", "Name"); model.ColumnsAvailable = Enum.GetValues(typeof(MembersReportEnum)).Cast<MembersReportEnum>().OrderBy(x => x.ToString()).ToList(); return View(model); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww.ToString())); }