private void GenerateAndSendResults() { AssesmentReportTO report = new AssesmentReportTO(); report.AssesmentInfo = info; report.Sections = new List <SectionReportTO>(); List <SectionPointsTO> list = AssesmentPersistence.GetAssesmentPoints(id); for (int i = 0; i < info.Evaluation.Sections.Count; i++) { SectionReportTO section = new SectionReportTO(); section.Name = info.Evaluation.Sections[i].Name; section.Percentage = 0; SectionPointsTO sectionPoints = list.Find(x => x.SectionID == info.Evaluation.Sections[i].ID); if (sectionPoints != null) { section.Percentage = sectionPoints.Points; } report.Sections.Add(section); } report.Analysis = GetAnalysis(); string savedFilePath = Pdf.GenerateSimplePdf(report); SendReport(savedFilePath); }
public void UpdateLeftTime() { if (info.Status != AssesmentStatus.Started) { return; } currentContext.MinutesLeft = currentContext.MinutesLeft - 1; if (currentContext.MinutesLeft < 0) { currentContext.MinutesLeft = 0; } if (currentContext.MinutesLeft == 0) { if (EvaluationHasNextSection()) { MoveToNextSection(); } else { End(); } } AssesmentPersistence.UpdateContext(id, currentContext); }
public Assesment(int id) { this.id = id; info = AssesmentPersistence.GetByID(id); if (info != null) { InitAdditionalData(); } }
public Assesment(string assesmentID) { info = AssesmentPersistence.GetByAssesmentID(assesmentID); if (info != null) { this.assesmentID = assesmentID; this.id = info.ID; InitAdditionalData(); } }
private void UpdateContext() { if (SectionHasNextQuestion()) { currentContext.QuestionIndex++; UpdateQuestionResponseInfo(); } else { if (EvaluationHasNextSection()) { MoveToNextSection(); } } AssesmentPersistence.UpdateContext(id, currentContext); }
public AssesmentEndOperationState End() { if (info.Status == AssesmentStatus.Created) { return(AssesmentEndOperationState.AssementNotStarted); } if (info.Status == AssesmentStatus.Done) { return(AssesmentEndOperationState.AlreadyDone); } info.Status = AssesmentStatus.Done; info.DateFinished = DateTime.Now; AssesmentPersistence.SetFinishedDate(id); GenerateAndSendResults(); return(AssesmentEndOperationState.Successful); }
private void CreateContext() { if (info != null) { if (info.Status == AssesmentStatus.Created) { currentContext = GetDefaultContext(); currentContext.MinutesLeft = ConvertEstimatedDurationToMinutesLeft(info.Evaluation.Sections[0].EstimatedDuration); AssesmentPersistence.CreateContext(id, currentContext); } else { currentContext = AssesmentPersistence.GetContextByAssesmentID(id); } UpdateSectionResponseInfo(); } }
public AssesmentStartOperationState Start() { if (info == null) { return(AssesmentStartOperationState.AssementNotFound); } if (info.DateStarted != null) { return(AssesmentStartOperationState.AlreadyStarted); } info.DateStarted = DateTime.Now; info.Status = AssesmentStatus.Started; AssesmentPersistence.SetStartDate(id); CreateContext(); return(AssesmentStartOperationState.Successful); }
public void Restart() { AssesmentPersistence.Restart(id); AssesmentPersistence.UpdateContext(id, GetDefaultContext()); }
private void SaveResponse() { QuestionTO question = GetCurrentQuestion(); AssesmentPersistence.SaveResponse(id, question.ID, question.Answers[currentQuestionAnswerIndex - 1].ID, responseWasRight); }