Exemplo n.º 1
0
        public async Task <IViewComponentResult> InvokeAsync(
            string title,
            string actionUrl,
            string description)
        {
            var model = new CallToActionViewModel {
                ActionUrl   = actionUrl,
                Title       = title,
                Description = description
            };

            return(await Task.FromResult(
                       View(model)
                       ));
        }
Exemplo n.º 2
0
        public async Task <IViewComponentResult> InvokeAsync(
            string title,
            string actionUrl,
            string description,
            string viewName = null)
        {
            var model = new CallToActionViewModel {
                ActionUrl   = actionUrl,
                Title       = title,
                Description = description
            };

            if (viewName.IsNotNullOrEmpty())
            {
                return(await Task.FromResult(
                           View(model)
                           ));
            }

            return(await Task.FromResult(
                       View(model)
                       ));
        }
Exemplo n.º 3
0
        private async Task <OrchestratorResponse <CallToActionViewModel> > GetCallToAction(string hashedAccountId, string externalUserId)
        {
            try
            {
                var reservationsResponseTask = _mediator.SendAsync(new GetReservationsRequest
                {
                    HashedAccountId = hashedAccountId,
                    ExternalUserId  = externalUserId
                });

                var apprenticeshipsResponseTask = _mediator.SendAsync(new GetApprenticeshipsRequest
                {
                    HashedAccountId = hashedAccountId,
                    ExternalUserId  = externalUserId
                });

                var accountCohortResponseTask = _mediator.SendAsync(new GetSingleCohortRequest
                {
                    HashedAccountId = hashedAccountId,
                    ExternalUserId  = externalUserId
                });

                var vacanciesResponseTask = _mediator.SendAsync(new GetVacanciesRequest
                {
                    HashedAccountId = hashedAccountId,
                    ExternalUserId  = externalUserId
                });

                await Task.WhenAll(reservationsResponseTask, vacanciesResponseTask, apprenticeshipsResponseTask, accountCohortResponseTask).ConfigureAwait(false);

                var reservationsResponse    = reservationsResponseTask.Result;
                var vacanciesResponse       = vacanciesResponseTask.Result;
                var apprenticeshipsResponse = apprenticeshipsResponseTask.Result;
                var accountCohortResponse   = accountCohortResponseTask.Result;

                CallToActionViewModel viewModel = null;
                var status = HttpStatusCode.OK;

                if (vacanciesResponse.HasFailed || reservationsResponse.HasFailed || accountCohortResponse.HasFailed || apprenticeshipsResponse.HasFailed)
                {
                    status = HttpStatusCode.InternalServerError;
                }
                else
                {
                    viewModel = new CallToActionViewModel
                    {
                        Reservations       = reservationsResponse.Reservations?.ToList(),
                        VacanciesViewModel = new VacanciesViewModel
                        {
                            VacancyCount = vacanciesResponse.Vacancies.Count(),
                            Vacancies    = _mapper.Map <IEnumerable <Vacancy>, IEnumerable <VacancyViewModel> >(vacanciesResponse.Vacancies)
                        },
                        Apprenticeships = _mapper.Map <IEnumerable <Apprenticeship>, IEnumerable <ApprenticeshipViewModel> >(apprenticeshipsResponse?.Apprenticeships),
                        Cohorts         = new List <CohortViewModel>
                        {
                            _mapper.Map <Cohort, CohortViewModel>(accountCohortResponse.Cohort)
                        }
                    };
                }

                return(new OrchestratorResponse <CallToActionViewModel>
                {
                    Status = status,
                    Data = viewModel
                });
            }
            catch (Exception ex)
            {
                return(new OrchestratorResponse <CallToActionViewModel>
                {
                    Status = HttpStatusCode.InternalServerError,
                    Exception = ex
                });
            }
        }