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); }
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); }
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); }
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>()); } }
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); }