Пример #1
0
 public static void AssertValidationResult(this MediatorResponse response, string code, bool parametersShouldNotBeNull = false)
 {
     response.Code.Should().Be(code);
     response.Message.Should().BeNull();
     response.AssertParameters(parametersShouldNotBeNull);
     response.ValidationResult.Should().NotBeNull();
 }
        private ActionResult HandleBasicDetails(MediatorResponse <NewVacancyViewModel> response)
        {
            ModelState.Clear();

            switch (response.Code)
            {
            case VacancyMediatorCodes.UpdateVacancy.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, string.Empty);
                return(View(response.ViewModel));

            case VacancyMediatorCodes.UpdateVacancy.Ok:
                return(RedirectToRoute(ManagementRouteNames.ReviewVacancy,
                                       new
                {
                    vacancyReferenceNumber = response.ViewModel.VacancyReferenceNumber
                }));

            case VacancyMediatorCodes.UpdateVacancy.InvalidVacancy:
                SetUserMessage(response.Message);
                return(RedirectToRoute(ManagementRouteNames.Dashboard));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
Пример #3
0
        public void SendContactMessageTest_WithUserName()
        {
            //Arrange
            const string username = "******";
            var          contactMessageViewModel = new ContactMessageViewModel
            {
                Details = "Can you please guide me to the right job?",
                Email   = "*****@*****.**",
                Enquiry = "How to apply for a apprenticeship",
                Name    = "Jane Doe"
            };

            //Act
            _contactMessageServerViewModelValidator.Setup(validator => validator.Validate(It.IsAny <ContactMessageViewModel>()))
            .Returns(new ValidationResult());

            _providerUserMediator.Setup(mediator => mediator.SendContactMessage(contactMessageViewModel)).Returns(true);

            MediatorResponse <ContactMessageViewModel> response = _homeMediator.SendContactMessage(username,
                                                                                                   contactMessageViewModel);

            //Assert
            response.Code.Should().NotBeNullOrWhiteSpace();
            response.Message.Should().NotBeNull();
            response.Message.Level.ShouldBeEquivalentTo(UserMessageLevel.Success);
            response.Message.Text.Should().Be("Your question has been successfully sent. Thank you.");
        }
Пример #4
0
 public static void AssertMessage(this MediatorResponse response, string code, string message, UserMessageLevel messageLevel, bool parametersShouldNotBeNull = false)
 {
     response.Code.Should().Be(code);
     response.Message.Text.Should().Be(message);
     response.Message.Level.Should().Be(messageLevel);
     response.AssertParameters(parametersShouldNotBeNull);
     response.ValidationResult.Should().BeNull();
 }
Пример #5
0
 private static void AssertParameters(this MediatorResponse response, bool parametersShouldNotBeNull)
 {
     if (parametersShouldNotBeNull)
     {
         response.Parameters.Should().NotBeNull();
     }
     else
     {
         response.Parameters.Should().BeNull();
     }
 }
Пример #6
0
 private static void AssertViewModel <T>(this MediatorResponse <T> response, bool viewModelShouldNotBeNull)
 {
     if (viewModelShouldNotBeNull)
     {
         response.ViewModel.Should().NotBeNull();
     }
     else
     {
         response.ViewModel.Should().BeNull();
     }
 }
Пример #7
0
 private static JsonResult SavedVacancyResultFromViewModel(MediatorResponse <SavedVacancyViewModel> response)
 {
     return(new JsonResult
     {
         Data = new
         {
             applicationStatus = response.ViewModel.ApplicationStatus.HasValue
                 ? response.ViewModel.ApplicationStatus.ToString()
                 : "Unsaved"
         }
     });
 }
Пример #8
0
        public MediatorResponse <T> GetMediatorResponse <T>(string code, T viewModel          = default(T),
                                                            ValidationResult validationResult = null, object parameters = null, string message = null)
        {
            MediatorResponse <T> response = new MediatorResponse <T> {
                Code             = code,
                ViewModel        = viewModel,
                ValidationResult = validationResult,
                Parameters       = parameters,
                Message          = message
            };

            return(response);
        }
Пример #9
0
        private ActionResult GetDetailsResult(MediatorResponse <ApprenticeshipVacancyDetailViewModel> response)
        {
            switch (response.Code)
            {
            case ApprenticeshipSearchMediatorCodes.Details.VacancyNotFound:
                return(new ApprenticeshipNotFoundResult());

            case ApprenticeshipSearchMediatorCodes.Details.VacancyHasError:
                ModelState.Clear();
                SetUserMessage(response.Message.Text, response.Message.Level);
                return(View("Details", response.ViewModel));

            case ApprenticeshipSearchMediatorCodes.Details.Ok:
                return(View("Details", response.ViewModel));
            }

            throw new InvalidMediatorCodeException(response.Code);
        }
Пример #10
0
 public async Task Invoke <TAction>(TAction action, MediatorResponse response, MiddlewareDelegate next, CancellationToken cancellationToken)
 {
     using (_logger.BeginMethod(action, action?.GetType()?.FullName ?? ""))
     {
         var stopwatch = Stopwatch.StartNew();
         try
         {
             await next();
         }
         catch (Exception e)
         {
             _logger.LogError(e, "Pipeline exception");
             throw;
         }
         finally
         {
             stopwatch.Stop();
             _logger.LogInformation($"Execution time = {stopwatch.ElapsedMilliseconds}ms");
         }
     }
 }
        public async Task Invoke <TAction>(TAction action, MediatorResponse response, MiddlewareDelegate next, CancellationToken cancellationToken)
        {
            if (action == null)
            {
                throw new ArgumentNullException(nameof(action));
            }
            var typeValidator = _validatorFactory.GetValidator(action.GetType());

            if (typeValidator != null)
            {
                var result = await typeValidator.ValidateAsync(new ValidationContext <object>(action), cancellationToken);

                if (result.Errors.Any())
                {
                    _logger.LogWarning("Model validation failed", result.Errors);
                    throw new ValidationException(result.Errors);
                }
            }

            await next();
        }
Пример #12
0
        public void GetContactMessageViewModelTest_WithUserName()
        {
            //// Arrange.
            const string username = "******";

            var providerUser = new ProviderUser
            {
                Fullname = "fullname",
                Email    = "*****@*****.**"
            };

            //Act
            _userProfileService.Setup(pup => pup.GetProviderUser(username))
            .Returns(providerUser);


            MediatorResponse <ContactMessageViewModel> response = _homeMediator.GetContactMessageViewModel(username);

            //Assert
            response.ViewModel.Name.Should().NotBeNullOrWhiteSpace();
            response.ViewModel.Email.Should().NotBeNullOrWhiteSpace();
        }
Пример #13
0
        public async Task Invoke <TAction>(TAction action, MediatorResponse response, MiddlewareDelegate next, CancellationToken cancellationToken)
        {
            _logger.LogInformation("Hello from " + nameof(CommandSpecificMiddleware));

            await next();
        }