private static bool HaveAValidHourRate(VacancySummaryViewModel vacancy, decimal?wage)
        {
            if (!vacancy.Wage.HasValue || !vacancy.HoursPerWeek.HasValue)
            {
                return(false);
            }

            var hourRate = GetHourRate(vacancy.Wage.Value, vacancy.WageUnit, vacancy.HoursPerWeek.Value);

            return(!(hourRate < ApprenticeMinimumWage));
        }
        private static bool HaveAValidDuration(VacancySummaryViewModel vacancy, int?duration)
        {
            if (!vacancy.HoursPerWeek.HasValue || !vacancy.Duration.HasValue)
            {
                return(true);
            }

            if (vacancy.HoursPerWeekBetween30And40() || vacancy.HoursPerWeekGreaterThanOrEqualTo16())
            {
                return(vacancy.DurationGreaterThanOrEqualTo12Months());
            }

            return(true);
        }
Exemple #3
0
        public static bool DurationGreaterThanOrEqualTo12Months(this VacancySummaryViewModel viewModel)
        {
            switch (viewModel.DurationType)
            {
            case DurationType.Weeks:
                return(viewModel.Duration >= AYearInWeeks);

            case DurationType.Months:
                return(viewModel.Duration >= AYearInMonths);

            case DurationType.Years:
                return(viewModel.Duration >= 1);

            default:
                return(false);
            }
        }
Exemple #4
0
        public static ValidationFailure PossibleStartDateShouldBeAfterClosingDate(this VacancySummaryViewModel viewModel, DateViewModel closingDate)
        {
            if (closingDate == null || !closingDate.HasValue || viewModel.PossibleStartDate == null ||
                !viewModel.PossibleStartDate.HasValue)
            {
                return(null);
            }

            if (viewModel.PossibleStartDate.Date < closingDate.Date)
            {
                var validationFailure = new ValidationFailure("PossibleStartDate", VacancyViewModelMessages.PossibleStartDate.BeforePublishDateErrorText)
                {
                    CustomState = ValidationType.Warning
                };
                return(validationFailure);
            }

            return(null);
        }
        public static VacancySummaryViewModel ConvertToVacancySummaryViewModel(VacancySummary vacancySummary)
        {
            var summaryViewModel = new VacancySummaryViewModel
            {
                Id                           = vacancySummary.Id,
                Title                        = vacancySummary.Title,
                VacancyReference             = vacancySummary.VacancyReference,
                EmployerName                 = string.IsNullOrWhiteSpace(vacancySummary.LegalEntityName) ? "Not selected" : vacancySummary.LegalEntityName,
                CreatedDate                  = vacancySummary.CreatedDate,
                Status                       = vacancySummary.Status,
                NoOfNewApplications          = vacancySummary.NoOfNewApplications,
                NoOfSuccessfulApplications   = vacancySummary.NoOfSuccessfulApplications,
                NoOfUnsuccessfulApplications = vacancySummary.NoOfUnsuccessfulApplications,
                ClosingDate                  = vacancySummary.ClosedDate ?? vacancySummary.ClosingDate,
                ApplicationMethod            = vacancySummary.ApplicationMethod,
                ProgrammeId                  = vacancySummary.ProgrammeId,
                TrainingLevel                = vacancySummary.TrainingLevel,
                TrainingTitle                = vacancySummary.TrainingTitle,
                TrainingType                 = vacancySummary.TrainingType,
                IsTransferred                = vacancySummary.TransferInfoTransferredDate.HasValue
            };

            return(summaryViewModel);
        }
Exemple #6
0
        public static ValidationFailure ExpectedDurationGreaterThanOrEqualToMinimumDuration(this VacancySummaryViewModel viewModel,
                                                                                            int?duration)
        {
            if (!viewModel.HoursPerWeek.HasValue || !duration.HasValue)
            {
                //Other errors will superceed this one so return valid
                return(null);
            }

            var hoursAndMinDurationLookup = HoursAndMinDurationLookup;

            var condition =
                hoursAndMinDurationLookup.FirstOrDefault(
                    l =>
                    viewModel.HoursPerWeek.Value >= l.HoursInclusiveLowerBound &&
                    (viewModel.HoursPerWeek.Value < l.HoursExclusiveUpperBound || l.HoursExclusiveUpperBound == null));

            if (condition == null)
            {
                //Other errors will superceed this one so return valid
                return(null);
            }

            if (!condition.IsGreaterThanOrEqualToMinDuration(duration.Value, viewModel.DurationType))
            {
                var validationFailure = new ValidationFailure("Duration", condition.WarningMessage)
                {
                    CustomState = ValidationType.Warning
                };
                return(validationFailure);
            }

            return(null);
        }
Exemple #7
0
 public static bool HoursPerWeekGreaterThanOrEqualTo16(this VacancySummaryViewModel viewModel)
 {
     return(viewModel.HoursPerWeek.HasValue && viewModel.HoursPerWeek >= 16);
 }
Exemple #8
0
 public static bool HoursPerWeekBetween30And40(this VacancySummaryViewModel viewModel)
 {
     return(viewModel.HoursPerWeek.HasValue && viewModel.HoursPerWeek >= 30 && viewModel.HoursPerWeek <= 40);
 }