예제 #1
0
        public async Task <RequestListResponse> ListAllRequests(RequestSearchFilter requestSearchFilter)
        {
            RequestListResponse response = new RequestListResponse();

            try
            {
                requestSearchFilter.CurrentPage = (requestSearchFilter.CurrentPage - 1) * requestSearchFilter.PageSize;
                if (requestSearchFilter.CurrentPage <= 0)
                {
                    requestSearchFilter.CurrentPage = 0;
                }
                response.requestViews = await _requestRepository.GetRequests(requestSearchFilter);

                response.IsSuccess = response.requestViews.Any();
                if (!response.IsSuccess)
                {
                    response.Message = "No requests found retrieved from given filters / query.";
                }
            }
            catch (Exception e)
            {
                response.Message   = "Error in retreiving request list with filters.";
                response.IsSuccess = false;
            }
            return(response);
        }
예제 #2
0
        /// <summary>
        /// To generate Excel request report
        /// </summary>
        /// <param name="requestSearchFilter"></param>
        /// <returns></returns>
        public async Task <MemoryStream> ListRequestDetailsForReport(RequestSearchFilter requestSearchFilter)
        {
            List <RequestReportModel> requestReportModelList;
            //List<RequestView> requestCurrentStatusModel;
            RequestListResponse response = new RequestListResponse();

            try
            {
                requestSearchFilter.CurrentPage = (requestSearchFilter.CurrentPage - 1) * requestSearchFilter.PageSize;
                //if (requestSearchFilter.CurrentPage <= 0)
                requestSearchFilter.CurrentPage = 0;
                requestSearchFilter.PageSize    = 900;
                requestSearchFilter.Sort        = E_SORT_ORDER.SUBMISSION_DATE_ASC;
                var currentRequestStatus = await _requestRepository.GetRequests(requestSearchFilter);

                var currentRequestStatusList = currentRequestStatus.ToList();
                requestSearchFilter.CurrentPage = 0;
                requestSearchFilter.Filter      = E_RESULT_FILTER.ALL;
                requestReportModelList          = await _requestRepository.GetRequestDetailsForReport(requestSearchFilter);

                List <RequestReportModel> finalRequestReportModelList = new List <RequestReportModel>();

                if (requestReportModelList == null)
                {
                    return(null);
                }

                var requestReportList = new List <RequestReportExcelModel>();

                foreach (var filteredRequest in requestReportModelList)
                {
                    foreach (var checkRequest in currentRequestStatusList)
                    {
                        if (checkRequest.YorbitRequestId.Equals(filteredRequest.RequestID))
                        {
                            finalRequestReportModelList.Add(filteredRequest);
                        }
                    }
                }

                var groupedRequests = finalRequestReportModelList.GroupBy(x => x.RequestID);
                foreach (var request in groupedRequests)
                {
                    var requestReport = new RequestReportExcelModel();
                    //requestReport.RequestID = request[0].RequestID;
                    //requestReport.Mid = request[0].Mid;
                    int i = 0;
                    foreach (var attempt in request)
                    {
                        bool fillEvaluatorDownloadDate = false;
                        bool fillEvaluationResultDate  = false;
                        bool fillSubmissionDate        = false;
                        if (!attempt.SubmissionDate.ToString().Equals("1/1/0001 12:00:00 AM"))
                        {
                            fillSubmissionDate = true;
                        }
                        if (!attempt.EvaluatorAssignmentDownloadDate.ToString().Equals("1/1/0001 12:00:00 AM"))
                        {
                            fillEvaluatorDownloadDate = true;
                        }
                        if (!attempt.EvaluationResultDate.ToString().Equals("1/1/0001 12:00:00 AM"))
                        {
                            fillEvaluationResultDate = true;
                        }

                        if (i == 0)
                        {
                            requestReport.RequestID         = attempt.RequestID;
                            requestReport.Mid               = attempt.Mid;
                            requestReport.Name              = attempt.Name;
                            requestReport.EmailID           = attempt.EmailID;
                            requestReport.CourseID          = attempt.CourseID;
                            requestReport.CourseName        = attempt.CourseName;
                            requestReport.Academy           = attempt.Academy;
                            requestReport.ApprovedDate      = attempt.ApprovedDate.ToString("MM/dd/yyyy");
                            requestReport.AssignmentDueDate = attempt.AssignmentDueDate.Date.ToString("MM/dd/yyyy");
                            requestReport.EvaluatorMailId   = attempt.EvaluatorMailId;
                            requestReport.EvaluatorType     = attempt.EvaluatorType;
                            requestReport.Vendor            = attempt.Vendor;
                            if (fillSubmissionDate)
                            {
                                requestReport.SubmissionDate = attempt.SubmissionDate.Date.ToString("MM/dd/yyyy");
                            }
                            requestReport.LearnerTAT = attempt.LearnerTAT;
                            if (fillEvaluatorDownloadDate)
                            {
                                requestReport.FirstEvaluatorAssignmentDownloadDate = attempt.EvaluatorAssignmentDownloadDate.Date.ToString("MM/dd/yyyy");
                            }
                            if (fillEvaluationResultDate)
                            {
                                requestReport.FirstEvaluationResultDate = attempt.EvaluationResultDate.Date.ToString("MM/dd/yyyy");
                                requestReport.FirstEvaluatorTAT         = attempt.EvaluatorTAT;
                            }
                            requestReport.FirstScore             = attempt.Score;
                            requestReport.FirstRequestStatus     = attempt.RequestStatus;
                            requestReport.FirstEvaluatorComments = attempt.EvaluatorComments;
                        }
                        else if (i == 1)
                        {
                            requestReport.FirstResubmissionDate = attempt.SubmissionDate.Date.ToString("MM/dd/yyyy");
                            if (fillEvaluatorDownloadDate)
                            {
                                requestReport.SecondEvaluatorAssignmentDownloadDate = attempt.EvaluatorAssignmentDownloadDate.Date.ToString("MM/dd/yyyy");
                            }
                            if (fillEvaluationResultDate)
                            {
                                requestReport.SecondEvaluationResultDate = attempt.EvaluationResultDate.Date.ToString("MM/dd/yyyy");
                                requestReport.SecondEvaluatorTAT         = attempt.EvaluatorTAT;
                            }
                            requestReport.SecondScore             = attempt.Score;
                            requestReport.SecondRequestStatus     = attempt.RequestStatus;
                            requestReport.SecondEvaluatorComments = attempt.EvaluatorComments;
                        }
                        else
                        {
                            requestReport.SecondResubmissionDate = attempt.SubmissionDate.Date.ToString("MM/dd/yyyy");
                            if (fillEvaluatorDownloadDate)
                            {
                                requestReport.ThirdEvaluatorAssignmentDownloadDate = attempt.EvaluatorAssignmentDownloadDate.Date.ToString("MM/dd/yyyy");
                            }
                            if (fillEvaluationResultDate)
                            {
                                requestReport.ThirdEvaluationResultDate = attempt.EvaluationResultDate.Date.ToString("MM/dd/yyyy");
                                requestReport.ThirdEvaluatorTAT         = attempt.EvaluatorTAT;
                            }
                            requestReport.ThirdScore             = attempt.Score;
                            requestReport.ThirdRequestStatus     = attempt.RequestStatus;
                            requestReport.ThirdEvaluatorComments = attempt.EvaluatorComments;
                        }
                        i++;
                    }
                    requestReportList.Add(requestReport);
                }
                MemoryStream  memS         = new MemoryStream();
                ExcelPackage  excel        = new ExcelPackage();
                List <string> listOfHeader = new List <string> {
                    "Request ID",
                    "MID",
                    "Name",
                    "Email id",
                    "Course Name",
                    "Course ID",
                    "Academy",
                    "Approved date",
                    "Due date for submission",
                    "Evaluator e-mail ID",
                    "Internal / Extenal",
                    "Vendor",
                    "Assignment submitted date(Tool to capture)",
                    "TAT by learner",
                    "Assignment downloaded date by evaluator",
                    "Date of evaluation results submitted by evaluator",
                    "Turn around time for evaluation",
                    "Score",
                    "Status(Cleared / Not cleared)",
                    "Comment by evaluator",
                    "Resubmission date",
                    "Assignment downloaded date by evaluator",
                    "Date of evaluation results submitted by evaluator",
                    "Turn around time for evaluation",
                    "Score",
                    "Status(Cleared / Not cleared)",
                    "Comment by evaluator",
                    "Resubmission date",
                    "Assignment downloaded date by evaluator",
                    "Date of evaluation results submitted by evaluator",
                    "Turn around time for evaluation",
                    "Score",
                    "Status(Cleared / Not cleared)",
                    "Comment by evaluator"
                };

                var worksheet = excel.Workbook.Worksheets.Add("Requests");
                if (requestReportList.Any())
                {
                    worksheet.Column(20).Style.WrapText = true;
                    worksheet.Column(20).AutoFit();
                    worksheet.Column(27).Style.WrapText = true;
                    worksheet.Column(27).AutoFit();
                    worksheet.Column(34).Style.WrapText = true;
                    worksheet.Column(34).AutoFit();
                    worksheet.Cells["M1:T1"].Merge = true;
                    worksheet.Cells["M1"].Value    = "1st Attempt";
                    worksheet.Cells["M1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells["M1"].Style.Fill.BackgroundColor.SetColor(Color.AliceBlue);
                    worksheet.Cells["M1"].Style.Border.BorderAround(ExcelBorderStyle.Thin);

                    worksheet.Cells["U1:AA1"].Merge = true;
                    worksheet.Cells["U1"].Value     = "2nd Attempt";
                    worksheet.Cells["U1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells["U1"].Style.Fill.BackgroundColor.SetColor(Color.SkyBlue);
                    worksheet.Cells["U1"].Style.Border.BorderAround(ExcelBorderStyle.Thin);

                    worksheet.Cells["AB1:AH1"].Merge = true;
                    worksheet.Cells["AB1"].Value     = "3rd Attempt";
                    worksheet.Cells["AB1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells["AB1"].Style.Fill.BackgroundColor.SetColor(Color.DeepSkyBlue);
                    worksheet.Cells["AB1"].Style.Border.BorderAround(ExcelBorderStyle.Thin);

                    worksheet.Cells["A2"].LoadFromArrays(new List <string[]>(new[] { listOfHeader.ToArray() }));
                    worksheet.Cells["A3"].LoadFromCollection(requestReportList, false);

                    int colCount = worksheet.Dimension.End.Column;
                    int rowCount = worksheet.Dimension.End.Row;
                    worksheet.Cells[1, 13, 1, colCount].Style.Font.Bold = true;
                    worksheet.Cells[1, 13, 1, colCount].AutoFilter      = false;
                    worksheet.Cells[1, 13, rowCount, colCount].AutoFitColumns();
                    worksheet.Cells[1, 13, 1, colCount].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

                    worksheet.Cells[2, 1, 2, colCount].Style.Font.Bold = true;
                    worksheet.Cells[2, 1, 2, colCount].AutoFitColumns();
                    worksheet.Cells[2, 1, 2, colCount].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                    worksheet.Cells[2, 1, 2, colCount].AutoFilter = false;
                    worksheet.Cells[2, 1, rowCount, colCount].AutoFitColumns();

                    excel.SaveAs(memS);
                    excel.Dispose();
                    memS.Position = 0;
                    return(memS);
                }
                return(null);
            }
            catch (Exception e)
            {
                return(null);
            }
        }