|
22 | 22 | using DigitalLearningSolutions.Web.ViewModels.LearningPortal.Current; |
23 | 23 | using DocumentFormat.OpenXml.EMMA; |
24 | 24 | using Microsoft.AspNetCore.Mvc; |
25 | | - using Microsoft.AspNetCore.Mvc.Rendering; |
26 | | - using Microsoft.AspNetCore.Mvc.ViewEngines; |
27 | | - using Microsoft.AspNetCore.Mvc.ViewFeatures; |
28 | 25 | using Microsoft.Extensions.Logging; |
29 | 26 | using Microsoft.FeatureManagement.Mvc; |
30 | 27 |
|
@@ -343,180 +340,5 @@ int delegateUserId |
343 | 340 | await actionPlanService.GetIncompleteActionPlanResources(delegateUserId); |
344 | 341 | return (resources.ToList(), apiIsAccessible); |
345 | 342 | } |
346 | | - [Route("/LearningPortal/Current/{candidateAssessmentId:int}/{route:int}/Certificate")] |
347 | | - [NoCaching] |
348 | | - public IActionResult CompetencySelfAssessmentCertificate(int candidateAssessmentId, int route) |
349 | | - { |
350 | | - int supervisorDelegateId = 0; |
351 | | - if (candidateAssessmentId == 0) |
352 | | - { |
353 | | - return NotFound(); |
354 | | - } |
355 | | - |
356 | | - var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(candidateAssessmentId); |
357 | | - if (competencymaindata == null) |
358 | | - { |
359 | | - return NotFound(); |
360 | | - } |
361 | | - |
362 | | - var delegateUserId = competencymaindata.LearnerId; |
363 | | - if (route == 3) |
364 | | - { |
365 | | - var supervisorDelegate = supervisorService.GetSupervisorDelegate(User.GetAdminIdKnownNotNull(), delegateUserId); |
366 | | - supervisorDelegateId = supervisorDelegate.ID; |
367 | | - } |
368 | | - var recentResults = selfAssessmentService.GetMostRecentResults(competencymaindata.SelfAssessmentID, competencymaindata.LearnerDelegateAccountId).ToList(); |
369 | | - var supervisorSignOffs = selfAssessmentService.GetSupervisorSignOffsForCandidateAssessment(competencymaindata.SelfAssessmentID, delegateUserId); |
370 | | - |
371 | | - if (!CertificateHelper.CanViewCertificate(recentResults, supervisorSignOffs)) |
372 | | - { |
373 | | - return NotFound(); |
374 | | - } |
375 | | - |
376 | | - var competencycount = selfAssessmentService.GetCompetencyCountSelfAssessmentCertificate(candidateAssessmentId); |
377 | | - var accessors = selfAssessmentService.GetAccessor(competencymaindata.SelfAssessmentID, competencymaindata.LearnerId); |
378 | | - var assessment = selfAssessmentService.GetSelfAssessmentForCandidateById(delegateUserId, competencymaindata.SelfAssessmentID); |
379 | | - var competencyIds = recentResults.Select(c => c.Id).ToArray(); |
380 | | - var competencyFlags = frameworkService.GetSelectedCompetencyFlagsByCompetecyIds(competencyIds); |
381 | | - var competencies = CompetencyFilterHelper.FilterCompetencies(recentResults, competencyFlags, null); |
382 | | - foreach (var competency in competencies) |
383 | | - { |
384 | | - competency.QuestionLabel = assessment.QuestionLabel; |
385 | | - foreach (var assessmentQuestion in competency.AssessmentQuestions) |
386 | | - { |
387 | | - if (assessmentQuestion.AssessmentQuestionInputTypeID != 2) |
388 | | - { |
389 | | - assessmentQuestion.LevelDescriptors = selfAssessmentService |
390 | | - .GetLevelDescriptorsForAssessmentQuestion( |
391 | | - assessmentQuestion.Id, |
392 | | - assessmentQuestion.MinValue, |
393 | | - assessmentQuestion.MaxValue, |
394 | | - assessmentQuestion.MinValue == 0 |
395 | | - ).ToList(); |
396 | | - } |
397 | | - } |
398 | | - } |
399 | | - |
400 | | - var CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup); |
401 | | - var competencySummaries = from g in CompetencyGroups |
402 | | - let questions = g.SelectMany(c => c.AssessmentQuestions).Where(q => q.Required) |
403 | | - let selfAssessedCount = questions.Count(q => q.Result.HasValue) |
404 | | - let verifiedCount = questions.Count(q => !((q.Result == null || q.Verified == null || q.SignedOff != true) && q.Required)) |
405 | | - |
406 | | - select new |
407 | | - { |
408 | | - SelfAssessedCount = selfAssessedCount, |
409 | | - VerifiedCount = verifiedCount, |
410 | | - Questions = questions.Count() |
411 | | - }; |
412 | | - |
413 | | - int sumVerifiedCount = competencySummaries.Sum(item => item.VerifiedCount); |
414 | | - int sumQuestions = competencySummaries.Sum(item => item.Questions); |
415 | | - var activitySummaryCompetencySelfAssesment = selfAssessmentService.GetActivitySummaryCompetencySelfAssesment(competencymaindata.Id); |
416 | | - var model = new CompetencySelfAssessmentCertificateViewModel(competencymaindata, competencycount, route, accessors, activitySummaryCompetencySelfAssesment, sumQuestions, sumVerifiedCount, supervisorDelegateId); |
417 | | - return View("Current/CompetencySelfAssessmentCertificate", model); |
418 | | - } |
419 | | - [Route("DownloadCertificate")] |
420 | | - public async Task<IActionResult> DownloadCertificate(int candidateAssessmentId) |
421 | | - { |
422 | | - PdfReportStatusResponse pdfReportStatusResponse = new PdfReportStatusResponse(); |
423 | | - if (candidateAssessmentId == 0) |
424 | | - { |
425 | | - return NotFound(); |
426 | | - } |
427 | | - var delegateId = User.GetCandidateIdKnownNotNull(); |
428 | | - var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(candidateAssessmentId); |
429 | | - |
430 | | - if (competencymaindata == null) |
431 | | - { |
432 | | - return NotFound(); |
433 | | - } |
434 | | - var delegateUserId = competencymaindata.LearnerId; |
435 | | - |
436 | | - var competencycount = selfAssessmentService.GetCompetencyCountSelfAssessmentCertificate(candidateAssessmentId); |
437 | | - var accessors = selfAssessmentService.GetAccessor(competencymaindata.SelfAssessmentID, competencymaindata.LearnerId); |
438 | | - var activitySummaryCompetencySelfAssesment = selfAssessmentService.GetActivitySummaryCompetencySelfAssesment(competencymaindata.Id); |
439 | | - var assessment = selfAssessmentService.GetSelfAssessmentForCandidateById(delegateUserId, competencymaindata.SelfAssessmentID); |
440 | | - var recentResults = selfAssessmentService.GetMostRecentResults(competencymaindata.SelfAssessmentID, competencymaindata.LearnerDelegateAccountId).ToList(); |
441 | | - var competencyIds = recentResults.Select(c => c.Id).ToArray(); |
442 | | - var competencyFlags = frameworkService.GetSelectedCompetencyFlagsByCompetecyIds(competencyIds); |
443 | | - var competencies = CompetencyFilterHelper.FilterCompetencies(recentResults, competencyFlags, null); |
444 | | - foreach (var competency in competencies) |
445 | | - { |
446 | | - competency.QuestionLabel = assessment.QuestionLabel; |
447 | | - foreach (var assessmentQuestion in competency.AssessmentQuestions) |
448 | | - { |
449 | | - if (assessmentQuestion.AssessmentQuestionInputTypeID != 2) |
450 | | - { |
451 | | - assessmentQuestion.LevelDescriptors = selfAssessmentService |
452 | | - .GetLevelDescriptorsForAssessmentQuestion( |
453 | | - assessmentQuestion.Id, |
454 | | - assessmentQuestion.MinValue, |
455 | | - assessmentQuestion.MaxValue, |
456 | | - assessmentQuestion.MinValue == 0 |
457 | | - ).ToList(); |
458 | | - } |
459 | | - } |
460 | | - } |
461 | | - |
462 | | - var CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup); |
463 | | - var competencySummaries = from g in CompetencyGroups |
464 | | - let questions = g.SelectMany(c => c.AssessmentQuestions).Where(q => q.Required) |
465 | | - let selfAssessedCount = questions.Count(q => q.Result.HasValue) |
466 | | - let verifiedCount = questions.Count(q => !((q.Result == null || q.Verified == null || q.SignedOff != true) && q.Required)) |
467 | | - select new |
468 | | - { |
469 | | - SelfAssessedCount = selfAssessedCount, |
470 | | - VerifiedCount = verifiedCount, |
471 | | - Questions = questions.Count() |
472 | | - }; |
473 | | - |
474 | | - int sumVerifiedCount = competencySummaries.Sum(item => item.VerifiedCount); |
475 | | - int sumQuestions = competencySummaries.Sum(item => item.Questions); |
476 | | - var model = new CompetencySelfAssessmentCertificateViewModel(competencymaindata, competencycount, 1, accessors, activitySummaryCompetencySelfAssesment, sumQuestions, sumVerifiedCount, null); |
477 | | - var renderedViewHTML = RenderRazorViewToString(this, "Current/DownloadCompetencySelfAssessmentCertificate", model); |
478 | | - |
479 | | - var pdfReportResponse = await pdfService.PdfReport(candidateAssessmentId.ToString(), renderedViewHTML, delegateId); |
480 | | - if (pdfReportResponse != null) |
481 | | - { |
482 | | - do |
483 | | - { |
484 | | - pdfReportStatusResponse = await pdfService.PdfReportStatus(pdfReportResponse); |
485 | | - } while (pdfReportStatusResponse.Id == 1); |
486 | | - |
487 | | - var pdfReportFile = await pdfService.GetPdfReportFile(pdfReportResponse); |
488 | | - if (pdfReportFile != null) |
489 | | - { |
490 | | - var nameTextLength = string.IsNullOrEmpty(model.CompetencySelfAssessmentCertificates.LearnerName) ? 0 : model.CompetencySelfAssessmentCertificates.LearnerName.Length; |
491 | | - var isPrnExist = !string.IsNullOrEmpty(model.CompetencySelfAssessmentCertificates.LearnerPRN); |
492 | | - var fileName = $"Competency Certificate - {model.CompetencySelfAssessmentCertificates.LearnerName.Substring(0, nameTextLength >= 15 ? 15 : nameTextLength)}" + (isPrnExist ? $" - {model.CompetencySelfAssessmentCertificates.LearnerPRN}.pdf" : ".pdf"); |
493 | | - return File(pdfReportFile, FileHelper.GetContentTypeFromFileName(fileName), fileName); |
494 | | - } |
495 | | - } |
496 | | - return View("Current/CompetencySelfAssessmentCertificate", model); |
497 | | - } |
498 | | - |
499 | | - public static string RenderRazorViewToString(Controller controller, string viewName, object model = null) |
500 | | - { |
501 | | - controller.ViewData.Model = model; |
502 | | - using (var sw = new StringWriter()) |
503 | | - { |
504 | | - IViewEngine viewEngine = |
505 | | - controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as |
506 | | - ICompositeViewEngine; |
507 | | - ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, false); |
508 | | - |
509 | | - ViewContext viewContext = new ViewContext( |
510 | | - controller.ControllerContext, |
511 | | - viewResult.View, |
512 | | - controller.ViewData, |
513 | | - controller.TempData, |
514 | | - sw, |
515 | | - new HtmlHelperOptions() |
516 | | - ); |
517 | | - viewResult.View.RenderAsync(viewContext); |
518 | | - return sw.GetStringBuilder().ToString(); |
519 | | - } |
520 | | - } |
521 | 343 | } |
522 | 344 | } |
0 commit comments