示例#1
0
        public Task UpdateVacancyApplicationsAsync(VacancyApplications vacancyApplications)
        {
            vacancyApplications.Id          = QueryViewType.VacancyApplications.GetIdValue(vacancyApplications.VacancyReference.ToString());
            vacancyApplications.LastUpdated = _timeProvider.Now;

            return(_queryStore.UpsertAsync(vacancyApplications));
        }
        public async Task <bool> AcceptWorker(int vacancyApplicationId)
        {
            VacancyApplications vacancy = await _vacanciesApplications.GetAll()
                                          .Include(va => va.Vacancy)
                                          .FirstOrDefaultAsync(va => va.Id == vacancyApplicationId);

            return(await _businessService.AcceptWorker(vacancy));
        }
        public async Task <bool> RespondVacancy(int vacancyId, ClaimsPrincipal claims)
        {
            User user = await _userManager.FindByEmailFromClaimsPrincipals(claims);

            VacancyApplications vacancyApplications = new VacancyApplications
            {
                VacancyId     = vacancyId,
                VacancyStatus = VacancyStatus.Pending,
                ApplicantId   = user.Id
            };

            return(await _businessService.RespondVacancy(vacancyApplications));
        }
示例#4
0
        private async Task Handle(IApplicationReviewEvent notification)
        {
            _logger.LogInformation("Handling {notificationType} for vacancyReference: {vacancyReference}", notification.GetType().Name, notification?.VacancyReference);

            var vacancy = await _vacancyRepository.GetVacancyAsync(notification.VacancyReference);

            var vacancyApplicationReviews = await _applicationReviewQuery.GetForVacancyAsync <ApplicationReview>(vacancy.VacancyReference.Value);

            var vacancyApplications = new VacancyApplications
            {
                VacancyReference = vacancy.VacancyReference.Value,
                Applications     = vacancyApplicationReviews.Select(MapToVacancyApplication).ToList()
            };

            await _writer.UpdateVacancyApplicationsAsync(vacancyApplications);
        }
        public async Task UpdateVacancyApplicationsAsync(long vacancyReference)
        {
            _logger.LogInformation("Updating vacancyApplications projection for vacancyReference: {vacancyReference}", vacancyReference);

            var vacancy = await _vacancyRepository.GetVacancyAsync(vacancyReference);

            var vacancyApplicationReviews = await _applicationReviewQuery.GetForVacancyAsync <ApplicationReview>(vacancy.VacancyReference.Value);

            var vacancyApplications = new VacancyApplications
            {
                VacancyReference = vacancy.VacancyReference.Value,
                Applications     = vacancyApplicationReviews.Select(MapToVacancyApplication).ToList()
            };

            await _writer.UpdateVacancyApplicationsAsync(vacancyApplications);
        }
示例#6
0
        public async Task <bool> AcceptWorker(VacancyApplications vacancy)
        {
            BusinessWorker worker = new BusinessWorker
            {
                PositionAtWork = vacancy.Vacancy.Title,
                WorkerId       = vacancy.ApplicantId,
                StartWork      = DateTime.Now,
                Salary         = vacancy.Vacancy.Salary,
                BusinessId     = vacancy.Vacancy.BusinessId
            };

            _unitOfWork.Repository <VacancyApplications>().Delete(vacancy);

            _unitOfWork.Repository <BusinessWorker>().Add(worker);

            return(await _unitOfWork.Complete());
        }
示例#7
0
        public async Task <bool> RespondVacancy(VacancyApplications vacancyApplication)
        {
            List <VacancyApplications> vacancyApplications = await _unitOfWork.Repository <VacancyApplications>()
                                                             .GetAll()
                                                             .Where(va => va.ApplicantId == va.ApplicantId)
                                                             .ToListAsync();

            if (vacancyApplications.FirstOrDefault(va => va.ApplicantId == vacancyApplication.ApplicantId &&
                                                   va.VacancyId == vacancyApplication.VacancyId) != null)
            {
                return(false);
            }

            _unitOfWork.Repository <VacancyApplications>().Add(vacancyApplication);

            return(await _unitOfWork.Complete());
        }
        private List <VacancyApplication> FilterApplicants(string applicantApplicationOutcomeFilter, VacancyApplications vacancyApplications)
        {
            var applicants = vacancyApplications.Applications;

            if (string.IsNullOrEmpty(applicantApplicationOutcomeFilter) == false)
            {
                applicants = applicants
                             .Where(app => app.Status.ToString().Equals(applicantApplicationOutcomeFilter, StringComparison.InvariantCultureIgnoreCase))
                             .ToList();
            }

            return(applicants);
        }
示例#9
0
        public async Task <bool> RejectVacancyRespond(VacancyApplications application)
        {
            _unitOfWork.Repository <VacancyApplications>().Delete(application);

            return(await _unitOfWork.Complete());
        }
        public async Task <bool> RejectVacancyRespond(int id)
        {
            VacancyApplications vacancy = await _vacanciesApplications.GetByIdAsync(id);

            return(await _businessService.RejectVacancyRespond(vacancy));
        }