Esempio n. 1
0
        protected override void When(object @event)
        {
            switch (@event)
            {
            case ApplicationEvents.Submitted e:
                Id             = new ApplicationId(e.Id);
                ApplicantId    = new ApplicantId(e.ApplicantId);
                VisaId         = new VisaId(e.VisaId);
                SubmissionDate = SubmissionDate.FromDateTimeOffset(e.SubmissionDate);
                Status         = ApplicationStatus.Submitted;
                break;

            case ApplicationEvents.AssignedToReviewer e:
                ReviewerId = new EmbassyEmployeeId(e.ReviewerId);
                Status     = ApplicationStatus.PendingForReview;
                break;

            case ApplicationEvents.DocumentAdded e:
                var document = new Uri(e.DocumentUrl);
                Documents.Add(document);
                break;

            case ApplicationEvents.ChangesRequested _:
                Status = ApplicationStatus.ChangesRequested;
                break;

            case ApplicationEvents.Approved _:
                Status = ApplicationStatus.Approved;
                break;
            }
        }
Esempio n. 2
0
 public void AssignToReviewer(EmbassyEmployeeId reviewerId)
 {
     Apply(new ApplicationEvents.AssignedToReviewer
     {
         ReviewerId = reviewerId
     });
 }
Esempio n. 3
0
            public void ChangeStatusToApprove_Called()
            {
                // Arrange
                var applicantId    = new ApplicantId(Guid.NewGuid());
                var visaId         = new VisaId(Guid.NewGuid());
                var submissionDate = SubmissionDate.FromDateTimeOffset(DateTimeOffset.Now.AddDays(-7));
                var application    = new Application(applicantId, visaId, submissionDate);
                var documentUrl    = new Uri("https://www.streamscheme.com/wp-content/uploads/2020/04/pepega.png");

                application.AddDocument(documentUrl);
                var reviewerId = new EmbassyEmployeeId(Guid.NewGuid());

                application.AssignToReviewer(reviewerId);

                // Act
                application.Approve();

                // Assert
                Assert.Equal(ApplicationStatus.Approved, application.Status);
            }