示例#1
0
        public void SetWorkshopCompleteDate()
        {
            Project           project    = GetProject();
            EvaluationService service    = new EvaluationService(fixture.context);
            Evaluation        evaluation = service.Create("eval_name", project, "");

            System.DateTimeOffset testStartDate = System.DateTimeOffset.UtcNow;

            Assert.Null(evaluation.WorkshopCompleteDate);

            evaluation.Progression = Progression.Workshop;
            var exceptionProgress = Assert.Throws <System.InvalidOperationException>
                                        (() => service.SetWorkshopCompleteDate(evaluation));

            Assert.Contains(
                $"WorkshopCompleteDate requires an evaluation on FollowUp; it is: {evaluation.Progression}",
                exceptionProgress.Message);

            evaluation.Progression = Progression.FollowUp;
            service.SetWorkshopCompleteDate(evaluation);
            Assert.True(testStartDate < evaluation.WorkshopCompleteDate);

            var exceptionPreviouslySet = Assert.Throws <System.InvalidOperationException>
                                             (() => service.SetWorkshopCompleteDate(evaluation));

            Assert.Contains(
                $"Completion date already set as: {evaluation.WorkshopCompleteDate}",
                exceptionPreviouslySet.Message);
        }
示例#2
0
        public Evaluation ProgressEvaluation(string evaluationId, Progression newProgression)
        {
            Evaluation evaluation = _evaluationService.GetEvaluation(evaluationId);

            Role[] canBePerformedBy = { Role.Facilitator };
            AssertCanPerformMutation(evaluation, canBePerformedBy);

            _evaluationService.ProgressEvaluation(evaluation, newProgression);

            _participantService.ProgressAllParticipants(evaluation, newProgression);

            if (newProgression.Equals(Progression.FollowUp))
            {
                _evaluationService.SetWorkshopCompleteDate(evaluation);
                _answerService.CreateFollowUpAnswers(evaluation);
            }

            return(evaluation);
        }