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); }
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); } }
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); }
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); }
public static bool HoursPerWeekGreaterThanOrEqualTo16(this VacancySummaryViewModel viewModel) { return(viewModel.HoursPerWeek.HasValue && viewModel.HoursPerWeek >= 16); }
public static bool HoursPerWeekBetween30And40(this VacancySummaryViewModel viewModel) { return(viewModel.HoursPerWeek.HasValue && viewModel.HoursPerWeek >= 30 && viewModel.HoursPerWeek <= 40); }