public AvailabilityFactory(CleanerMatchResultVM cleaner, Int32 serviceGapMins, JobTypeEnum serviceType, IList <String> serviceZone)
        {
            Cleaner = cleaner ?? throw new ArgumentException("No cleaner specified.", nameof(Cleaner));

            if (serviceGapMins <= 0)
            {
                throw new ArgumentException("Invalid service gap requested.", nameof(ServiceGapMinutes));
            }

            if (serviceZone == null || serviceZone.Count == 0)
            {
                throw new ArgumentException("Invalid service suburb/zone requested.", nameof(ServiceZone));
            }

            ServiceDay = cleaner.SelectedRosterDay;
            if (cleaner.SelectedServiceDate.HasValue && cleaner.SelectedServiceDate != default(DateTime))
            {
                ServiceDateUTC = cleaner.SelectedServiceDate.Value.ToUTC();
            }
            else if (JobType == JobTypeEnum.Fortnighly || JobType == JobTypeEnum.Weekly)
            {
                // calculate next date
                ServiceDateUTC = DateTimeWrapper.FindNextDateForDay((DayOfWeek)ServiceDay);
            }
            JobType = serviceType;

            ServiceGapMinutes = serviceGapMins;
            ServiceZone       = serviceZone;
        }
示例#2
0
        /// <summary>
        /// Sets formatting style for day of the week based on even / odd wweeks
        /// </summary>
        /// <param name="cleaner">Cleaner.</param>
        private void FormatStyleForWeekday(CleanerMatchResultVM cleaner)
        {
            cleaner.StyleWeekday = "";
            if (cleaner == null)
            {
                return;
            }

            if (criteria.OneOffJob || criteria.VacateClean)
            {
                cleaner.StyleWeekday = criteria.ServiceDate.WeekYearStyle();
            }
            else
            {
                cleaner.StyleWeekday = DateTimeWrapper.FindNextDateForDay((DayOfWeek)criteria.ServiceDayValue).WeekYearStyle();
            }

            return;
        }