public async Task <OneOf <ModelWithErrors <ViewModel>, PublishResult> > Handle(Command request, CancellationToken cancellationToken) { var providerId = _providerContextProvider.GetProviderId(); if (!request.Confirm) { var(uploadRows, uploadStatus) = await _fileUploadProcessor.GetCourseUploadRowsForProvider(providerId); var vm = await CreateViewModel(uploadRows); var validationResult = new ValidationResult(new[] { new ValidationFailure(nameof(request.Confirm), "Confirm you want to publish these courses") }); return(new ModelWithErrors <ViewModel>(vm, validationResult)); } var publishResult = await _fileUploadProcessor.PublishCourseUploadForProvider(providerId, _currentUserProvider.GetCurrentUser()); if (publishResult.Status == PublishResultStatus.Success) { var journeyInstance = _journeyInstanceProvider.GetOrCreateInstance(() => new PublishJourneyModel()); journeyInstance.UpdateState(state => state.CoursesPublished = publishResult.PublishedCount); } return(publishResult); }
public async Task <IActionResult> Get(Request request) { _journeyInstance = _journeyInstanceProvider.GetOrCreateInstance(() => new JourneyModel()); return(await _mediator.SendAndMapResponse( request, vm => View(vm))); }
public async Task <IActionResult> Get( Request request, [LocalUrl(viewDataKey: "ReturnUrl")] string returnUrl) { _journeyInstance = _journeyInstanceProvider.GetOrCreateInstance(() => new JourneyModel()); return(await _mediator.SendAndMapResponse( request, vm => View(vm))); }
public async Task <IActionResult> SelectTLevel() { _journeyInstance = _journeyInstanceProvider.GetOrCreateInstance( () => new AddTLevelJourneyModel()); if (!_journeyInstanceProvider.IsCurrentInstance(_journeyInstance)) { return(RedirectToAction() .WithProviderContext(_providerContext) .WithJourneyInstanceUniqueKey(_journeyInstance)); } var query = new SelectTLevel.Query() { ProviderId = _providerContext.ProviderInfo.ProviderId }; return(await _mediator.SendAndMapResponse(query, vm => View("SelectTLevel", vm))); }
public IActionResult Index([FromQuery] string postcode, [FromQuery] string returnUrl) { var journeyInstance = _journeyInstanceProvider.GetOrCreateInstance( () => new AddVenueJourneyModel(), new PropertiesBuilder() .Add(ReturnUrlJourneyInstancePropertyKey, returnUrl) .Build()); if (!_journeyInstanceProvider.IsCurrentInstance(journeyInstance)) { return(RedirectToAction() .WithProviderContext(_providerContextProvider.GetProviderContext()) .WithJourneyInstanceUniqueKey(journeyInstance)); } return(View( nameof(PostcodeSearch), new PostcodeSearch.SearchCommand() { Postcode = postcode })); }