public IDomainModel CreateNewEvaluation(CreateEvaluationDomainModel createModel) { var evaluationModel = new EvaluationDomainModel(); var newEvaluationEntity = ConvertModelToEntity(createModel); var evaluationId = Guid.Empty; try { CalculateGrade(newEvaluationEntity); evaluationId = EvaluationInteractor.CreateEvaluation(newEvaluationEntity); } catch (GradeTrackerException gte) { return(new ErrorDomainModel(gte, true)); } try { evaluationModel = (EvaluationDomainModel)GetEvaluation(evaluationId); } catch (GradeTrackerException gte) { return(new ErrorDomainModel(gte, false)); } return(evaluationModel); }
public IDomainModel DeleteEvaluation(Guid evaluationId) { var deletedEvaluationModel = new EvaluationDomainModel(); try { var evaluation = EvaluationInteractor.GetEvaluation(evaluationId); var linkedScores = ScoreInteractor.GetScoresByEvaluationId(evaluationId); if (linkedScores.Count > 0) { foreach (var score in linkedScores) { ScoreInteractor.DeleteScore(score.Id); } } EvaluationInteractor.DeleteEvaluation(evaluationId); deletedEvaluationModel = new EvaluationDomainModel() { CourseId = evaluation.CourseId }; } catch (GradeTrackerException gte) { return(new ErrorDomainModel(gte, false)); } return(deletedEvaluationModel); }
public IDomainModel UpdateEvaluation(EvaluationDomainModel updatedEvaluationModel) { if (updatedEvaluationModel.Id.Equals(Guid.Empty)) { throw new ObjectNotFoundException(); } return(new EvaluationDomainModel()); }
public void UpdateEvaluation_ValidModel_ReturnsValidModel() { var testEvaluationEntity = EvaluationFactory.Create_EvaluationEntity_ValidMinimum_CustomId(Guid.NewGuid()); var testEvaluation = new EvaluationDomainModel(testEvaluationEntity); var testClass = ServiceFactory.Create_EvaluationService(); var result = testClass.UpdateEvaluation(testEvaluation); result.GetType().ShouldNotBe(typeof(ErrorDomainModel)); }
public void UpdateEvaluation_EmptyGuid_ReturnsErrorModel() { var testScore = new EvaluationDomainModel { Id = Guid.Empty }; var testClass = ServiceFactory.Create_EvaluationService(); var result = testClass.UpdateEvaluation(testScore); result.GetType().ShouldBe(typeof(ErrorDomainModel)); }
private static EvaluationEntity ConvertModelToEntity(EvaluationDomainModel domainModel) { return(new EvaluationEntity { Id = domainModel.Id, Name = domainModel.Name, CourseId = domainModel.CourseId, Weight = domainModel.Weight, NumberOfScores = domainModel.NumberOfScores, PointsPerScore = domainModel.PointsPerScore, DropLowest = domainModel.DropLowest }); }
public EvaluationViewModel(EvaluationDomainModel domainModel) { Id = domainModel.Id; Name = domainModel.Name; CourseId = domainModel.CourseId; Weight = domainModel.Weight * 100; NumberOfScores = domainModel.NumberOfScores; PointValuePerScore = domainModel.PointsPerScore; TotalPointsPossible = domainModel.TotalPointsPossible; CurrentPointsPossible = domainModel.CurrentPointsPossible; PointsEarned = domainModel.PointsEarned; CurrentGrade = domainModel.CurrentPointsGrade * 100; FinalGrade = domainModel.FinalPointsGrade * 100; DropLowest = domainModel.DropLowest; LastModified = domainModel.LastModified; CreatedOn = domainModel.CreatedOn; }
/// <summary> /// Gets the course attached to the passed ID, and displays the data currently in the database /// </summary> /// <param name="evaluationId"></param> /// <returns></returns> public IDomainModel GetEvaluation(Guid evaluationId) { var evaluationModel = new EvaluationDomainModel(); var evaluationEntity = new EvaluationEntity(); try { evaluationEntity = EvaluationInteractor.GetEvaluation(evaluationId); } catch (GradeTrackerException gte) { return(new ErrorDomainModel(gte, false)); } evaluationModel = new EvaluationDomainModel(evaluationEntity); return(evaluationModel); }
public void DeleteEvaluation_ScoresPresent_DeletesScores() { var testEvalId = Guid.NewGuid(); var testEval = EvaluationFactory.Create_EvaluationEntity_ValidMinimum_CustomId(testEvalId); var testDomainModel = new EvaluationDomainModel(testEval); var testScores = ScoreFactory.Create_ListOfScoreEntity(testEvalId); var testScoreRepo = new MockRepository <ScoreEntity>(testScores); var scoreInteractor = TestDatas.Scores.InteractorFactory.Create_ScoreInteractor(); scoreInteractor.Repo = testScoreRepo; var mockEvalInteractor = TestDatas.Evaluations.InteractorFactory.Create_MockEvaluationInteractor(); var testClass = ServiceFactory.Create_EvaluationService(); testClass.EvaluationInteractor = mockEvalInteractor; testClass.ScoreInteractor = scoreInteractor; var result = testClass.DeleteEvaluation(testEvalId); var resultScores = testClass.ScoreInteractor.GetScoresByEvaluationId(testEvalId); result.GetType().ShouldNotBe(typeof(ErrorDomainModel)); resultScores.Count.ShouldBe(0); }
public IDomainModel UpdateEvaluation(EvaluationDomainModel updatedEvaluationModel) { var returnModel = new EvaluationDomainModel(); try { var entityToUpdate = ConvertModelToEntity(updatedEvaluationModel); CalculateGrade(entityToUpdate); EvaluationInteractor.UpdateEvaluation(entityToUpdate); var updatedEntity = EvaluationInteractor.GetEvaluation(entityToUpdate.Id); returnModel = new EvaluationDomainModel(updatedEntity); } catch (GradeTrackerException gte) { return(new ErrorDomainModel(gte, true)); } return(returnModel); }
public ActionResult Complete(EvaluationDomainModel evaluationModel) { var evaluationViewModel = new EvaluationViewModel(evaluationModel); return(View("EvaluationComplete", evaluationViewModel)); }