Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. public class TicketSummaryReport
  2. {
  3. public void MonthsSummaryReport(TicketSummary tickets, DateTime startDate, DateTime endDate,
  4. DocX summaryReportDocX, MemoryStream stream)
  5. {
  6.  
  7. int date = (endDate.Month + 1) - startDate.Month;
  8.  
  9.  
  10. //Columns of the table that are labeled (6 : Total Tickets Summary / Open tickets / Awaiting Customer / Hold Tickets / Closed Tickets / Total)
  11. const int numberLabeledRows = 8;
  12.  
  13. Table table = summaryReportDocX.InsertTable(numberLabeledRows, date + 1);
  14. table.Rows[0].Cells[0].Paragraphs[0].Append("Total Tickets Summary");
  15.  
  16. table.Rows[2].Cells[0].Paragraphs[0].Append("Open Tickets");
  17. table.Rows[3].Cells[0].Paragraphs[0].Append("Awaiting Customer");
  18. table.Rows[4].Cells[0].Paragraphs[0].Append("On Hold");
  19. table.Rows[5].Cells[0].Paragraphs[0].Append("Closed Tickets");
  20.  
  21. table.Rows[7].Cells[0].Paragraphs[0].Append("Total ");
  22.  
  23. for (int i = 1; i <= date; i++)
  24. {
  25. string monthName = startDate.AddMonths(i - 1).ToString("MMM", CultureInfo.InvariantCulture);
  26. if (date <= 12)
  27. {
  28. table.Rows[0].Cells[i].Paragraphs[0].Append(monthName);
  29.  
  30. }
  31. else
  32. {
  33. table.Rows[0].Cells[i].Paragraphs[0].Append(monthName + " " + startDate.AddMonths(i - 1).Year);
  34. }
  35.  
  36. }
  37. //iterate through the rows of the table
  38. for (int row = 2; row <= numberLabeledRows - 1; row++)
  39. {
  40.  
  41. if (row == 6)
  42. {
  43. continue;
  44. }
  45.  
  46. //Populate the tables with tickets according to status/ month
  47. for (int cell = 1; cell <= date; cell++)
  48. {
  49. //Need all the tickets that have been edited DURING the month + the status at the end of the month (preferably the 28th);
  50. switch (row)
  51. {
  52. case 2:
  53.  
  54. var stageCountOpen =
  55. tickets.AllDevelopmentTickets.Count(
  56. t =>
  57. (t.Stage.ToLower() =="in progress" ||
  58. t.Stage.ToLower() =="identified") && (t.LastEditDateTime.Month == startDate.AddMonths(cell - 1).Month) && (t.LastEditDateTime.Year == startDate.Year));
  59.  
  60. table.Rows[row].Cells[cell].Paragraphs[0].Append(stageCountOpen.ToString(CultureInfo.InvariantCulture));
  61.  
  62. break;
  63. case 3:
  64. var stageCountAwaitingCustomer =
  65. tickets.AllDevelopmentTickets.Count(t => (t.Stage.ToLower().Equals("awaiting customer")) && (t.LastEditDateTime.Month == startDate.AddMonths(cell - 1).Month) && (t.LastEditDateTime.Year == startDate.Year));
  66. table.Rows[row].Cells[cell].Paragraphs[0].Append(stageCountAwaitingCustomer.ToString(CultureInfo.InvariantCulture));
  67.  
  68. break;
  69. case 4:
  70. var stageCountHold =
  71. tickets.AllDevelopmentTickets.Count(t => (t.Stage.ToLower().Equals("on hold")) && (t.LastEditDateTime.Month == startDate.AddMonths(cell - 1).Month) && (t.LastEditDateTime.Year == startDate.Year));
  72. table.Rows[row].Cells[cell].Paragraphs[0].Append(stageCountHold.ToString(CultureInfo.InvariantCulture));
  73.  
  74. break;
  75. case 5:
  76. var stageCountClosed =
  77. tickets.AllDevelopmentTickets.Count(t => (t.Stage.ToLower().Equals("closed")) && (t.LastEditDateTime.Month == startDate.AddMonths(cell - 1).Month) && (t.LastEditDateTime.Year == startDate.Year));
  78. table.Rows[row].Cells[cell].Paragraphs[0].Append(stageCountClosed.ToString(CultureInfo.InvariantCulture));
  79.  
  80. break;
  81. case 7:
  82. var allTickets = tickets.AllDevelopmentTickets.Count ( t => t.LastEditDateTime.Month == startDate.AddMonths(cell - 1).Month && t.LastEditDateTime.Year == startDate.Year);
  83. table.Rows[row].Cells[cell].Paragraphs[0].Append(allTickets.ToString(CultureInfo.InvariantCulture));
  84. break;
  85.  
  86.  
  87. }
  88.  
  89. }
  90.  
  91. summaryReportDocX.SaveAs(stream);
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement