Exemplo n.º 1
0
 public PeriodicTimeInterval UpdatePeriodicTimeInterval(PeriodicTimeInterval periodicTimeInterval)
 {
     Contract.Requires(periodicTimeInterval != null);
     using (IUnitOfWork uow = this.GetUnitOfWork())
     {
         IRepository <PeriodicTimeInterval> repo = uow.GetRepository <PeriodicTimeInterval>();
         repo.Put(periodicTimeInterval);
         uow.Commit();
     }
     return(periodicTimeInterval);
 }
Exemplo n.º 2
0
        public bool DeletePeriodicTimeInterval(PeriodicTimeInterval periodicTimeInterval)
        {
            Contract.Requires(periodicTimeInterval != null);
            Contract.Requires(periodicTimeInterval.Id >= 0);

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository <PeriodicTimeInterval> repo = uow.GetRepository <PeriodicTimeInterval>();
                periodicTimeInterval = repo.Reload(periodicTimeInterval);
                repo.Delete(periodicTimeInterval);
                uow.Commit();
            }
            return(true);
        }
Exemplo n.º 3
0
        public PeriodicTimeInterval CreatePeriodicTimeInterval(PeriodicTimeInstant periodicTimeInstant, TimeDuration duration)
        {
            PeriodicTimeInterval periodicTimeInterval = new PeriodicTimeInterval()
            {
                PeriodicTimeInstant = periodicTimeInstant,
                Duration            = duration
            };

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository <PeriodicTimeInterval> repo = uow.GetRepository <PeriodicTimeInterval>();
                repo.Put(periodicTimeInterval);
                uow.Commit();
            }
            return(periodicTimeInterval);
        }
Exemplo n.º 4
0
        public List <DateTime> PeriodicTimeMatch(PeriodicTimeInterval periodicTimeInterval, TimeInterval timeInterval, DateTime bookingStart, DateTime bookingEnd)
        {
            switch (periodicTimeInterval.PeriodicTimeInstant.ResetFrequency)
            {
            case ResetFrequency.Daily:

                return(GetAffectedDaysInTimePeriodDaily(timeInterval.StartTime.Instant, timeInterval.EndTime.Instant, bookingStart, bookingEnd, periodicTimeInterval.PeriodicTimeInstant.ResetInterval));

            case ResetFrequency.Weekly:

                List <DayOfWeek> daysInWeek = GetDays(periodicTimeInterval.PeriodicTimeInstant.Off_Set, periodicTimeInterval.Duration.Value);
                return(GetAffectedDaysInTimePeriodWeekly(timeInterval.StartTime.Instant, timeInterval.EndTime.Instant, bookingStart, bookingEnd, periodicTimeInterval.PeriodicTimeInstant.ResetInterval, daysInWeek));

            case ResetFrequency.Monthly:

                return(GetAffectedDaysInTimePeriodMonthly(timeInterval.StartTime.Instant, timeInterval.EndTime.Instant, bookingStart, bookingEnd, periodicTimeInterval.PeriodicTimeInstant.ResetInterval, periodicTimeInterval.Duration.Value, periodicTimeInterval.PeriodicTimeInstant.Off_Set));

            default:
                return(new List <DateTime>());
            }
        }
Exemplo n.º 5
0
        public PeriodicTimeIntervalModel(PeriodicTimeInterval periodicTimeInterval, DateTime statDateConstraint, DateTime?endDateConstraint)
        {
            Id = periodicTimeInterval.Id;
            PeriodicTimeInstant = periodicTimeInterval.PeriodicTimeInstant;
            Duration            = periodicTimeInterval.Duration;

            Days         = new List <CheckModel>();
            Days         = TimeHelper.GetDays();
            SelectedDays = new List <int>();

            switch (PeriodicTimeInstant.ResetFrequency)
            {
            case ResetFrequency.Daily:
                StartTime = new DateTime();
                EndTime   = new DateTime();
                TimeSpan timeSpan = new TimeSpan(PeriodicTimeInstant.Off_Set, 00, 00);
                StartTime.Add(timeSpan);
                EndTime = StartTime.AddHours(periodicTimeInterval.Duration.Value);

                if (PeriodicTimeInstant.ResetInterval <= 1)
                {
                    Summary = "Daily";
                }
                else
                {
                    Summary = String.Format("Every {0} days, start at {1} and end at {2}", PeriodicTimeInstant.ResetInterval, StartTime, EndTime);
                }
                break;

            case ResetFrequency.Weekly:

                List <int> ids = new List <int>();

                //ids.Add(periodicTimeInterval.PeriodicTimeInstant.Off_Set);

                for (int i = 0; i < periodicTimeInterval.Duration.Value; i++)
                {
                    ids.Add(periodicTimeInterval.PeriodicTimeInstant.Off_Set + i);
                }
                string days  = "";
                int    count = 0;
                foreach (int id in ids)
                {
                    count++;
                    var temp = Days.Where(a => a.Id == id).FirstOrDefault();
                    if (count == ids.Count())
                    {
                        days += temp.Name;
                    }
                    else
                    {
                        days += temp.Name + ", ";
                    }

                    Days.Where(w => w.Id == id).ToList().ForEach(s => s.Checked = true);
                }
                if (PeriodicTimeInstant.ResetInterval <= 1)
                {
                    Summary = String.Format("Weekly on {0}", days);
                }
                else
                {
                    Summary = String.Format("Every {0} weeks on {1}", PeriodicTimeInstant.ResetInterval, days);
                }

                break;

            case ResetFrequency.Monthly:
                StartDate = new DateTime();
                StartDate = statDateConstraint;
                EndDate   = new DateTime();
                EndDate   = endDateConstraint;
                if (PeriodicTimeInstant.ResetInterval <= 1)
                {
                    Summary = String.Format("Monthly on day {0}", PeriodicTimeInstant.Off_Set);
                }
                else
                {
                    Summary = String.Format("Every {0} months on the {1}th for the duration of {2}", PeriodicTimeInstant.ResetInterval, PeriodicTimeInstant.Off_Set, Duration.Value);
                }
                break;
            }

            ResetFrequencies = new List <ResetFrequency>();
            ResetFrequencies.Add(ResetFrequency.Daily);
            ResetFrequencies.Add(ResetFrequency.Weekly);
            ResetFrequencies.Add(ResetFrequency.Monthly);
        }