/// <summary> /// Get free helmets for day /// </summary> /// <param name="year">Y</param> /// <param name="month">M</param> /// <param name="day">D</param> /// <returns>Free hemlmets in current day</returns> public DayReservationInfo GetDayReservation(int year, int month, int day) { DateTime dateReservation = new DateTime(year, month, day); DayReservationInfo result = new DayReservationInfo(dateReservation); result.FreeHelmets = new List <HourReservationInfo>(); using (var db = new DoorDbContext()) { Reservation dayReservation = db.Reservations.Include(r => r.HourReservations).FirstOrDefault(r => r.DateReservation.HasValue && r.DateReservation.Value.Year == year && r.DateReservation.Value.Month == month && r.DateReservation.Value.Day == day); WorkingPlan workingPlan = WorkingPlanCaсhe.GetDayWorkingPlan(dateReservation.DayOfWeek); for (int i = workingPlan.StartWorking.Hours; i <= workingPlan.EndWorking.Hours; i++) { result.FreeHelmets.Add(new HourReservationInfo(i, activeHelmets)); } if (dayReservation != null && dayReservation.HourReservations != null && dayReservation.HourReservations.Count > 0) { foreach (var reservation in dayReservation.HourReservations) { HourReservationInfo hourInfo = result.FreeHelmets.First(r => r.StartHour == reservation.StartReservation.Hours); hourInfo.FreeHelmets = hourInfo.FreeHelmets - reservation.HelmetWorkStations.Count; } } } return(result); }
public static WorkingPlan GetDayWorkingPlan(DayOfWeek dayOfWeek) { WorkingPlan result = regularDay; if (dayOfWeek == DayOfWeek.Sunday || dayOfWeek == DayOfWeek.Saturday) { result = freeDay; } return(result); }
private Reservation CalculateDayReservation(WorkingPlan dayWorkingPlan, DateTime date) { Reservation reservation = new Reservation(); reservation.DateReservation = date;// new DateTime(year, month, day); reservation.HourReservations = new List <HourReservation>(); for (int startHour = dayWorkingPlan.StartWorking.Hours; startHour <= dayWorkingPlan.EndWorking.Hours; startHour++) { HourReservation hourReservation = new HourReservation(); hourReservation.StartReservation = new TimeSpan(startHour, 0, 0); hourReservation.EndReservation = new TimeSpan(startHour + 1, 0, 0); //hourReservation.HelmetWorkStations = db.HelmetWorkStations.Where(h => h.IsActive).ToList(); reservation.HourReservations.Add(hourReservation); } return(reservation); }
private Reservation AddDayReservation(DoorDbContext db, DateTime date) { Reservation reservation = new Reservation(); reservation.DateReservation = date;// new DateTime(year, month, day); reservation.HourReservations = new List <HourReservation>(); WorkingPlan dayWorkingPlan = this.GetDayWorkingPlan(db, date); for (int startHour = dayWorkingPlan.StartWorking.Hours; startHour <= dayWorkingPlan.EndWorking.Hours; startHour++) { HourReservation hourReservation = new HourReservation(); hourReservation.StartReservation = new TimeSpan(startHour, 0, 0); hourReservation.EndReservation = new TimeSpan(startHour + 1, 0, 0); //hourReservation.HelmetWorkStations = db.HelmetWorkStations.Where(h => h.IsActive).ToList(); reservation.HourReservations.Add(hourReservation); } Reservation result = db.Reservations.Add(reservation); return(result); }
static WorkingPlanCaсhe() { int regularDayHours = 9; int weekEndHours = 14; workingHours.Add(DayOfWeek.Monday, regularDayHours); workingHours.Add(DayOfWeek.Tuesday, regularDayHours); workingHours.Add(DayOfWeek.Wednesday, regularDayHours); workingHours.Add(DayOfWeek.Thursday, regularDayHours); workingHours.Add(DayOfWeek.Friday, regularDayHours); workingHours.Add(DayOfWeek.Saturday, weekEndHours); workingHours.Add(DayOfWeek.Sunday, weekEndHours); regularDay = new WorkingPlan(); regularDay.StartWorking = new TimeSpan(14, 0, 0); regularDay.EndWorking = new TimeSpan(22, 0, 0); freeDay = new WorkingPlan(); freeDay.StartWorking = new TimeSpan(10, 0, 0); freeDay.EndWorking = new TimeSpan(23, 0, 0); }
private void UpdateWorkingHours(DoorDbContext context) { PARAM monday = new PARAM(); monday.Domain = WorkingDays.Domain; monday.Label = WorkingDays.Monday; monday.Value = WorkingDays.MondayValue; WorkingPlan mondayPlan = new WorkingPlan(); mondayPlan.StartWorking = new TimeSpan(14, 0, 0); mondayPlan.EndWorking = new TimeSpan(22, 0, 0); mondayPlan.WorkingDay = monday; context.WorkingPlans.Add(mondayPlan); PARAM tuesday = new PARAM(); tuesday.Domain = WorkingDays.Domain; tuesday.Label = WorkingDays.Tuesday; tuesday.Value = WorkingDays.TuesdayValue; WorkingPlan tuesdayPlan = new WorkingPlan(); tuesdayPlan.StartWorking = new TimeSpan(14, 0, 0); tuesdayPlan.EndWorking = new TimeSpan(22, 0, 0); tuesdayPlan.WorkingDay = tuesday; context.WorkingPlans.Add(tuesdayPlan); PARAM wednesday = new PARAM(); wednesday.Domain = WorkingDays.Domain; wednesday.Label = WorkingDays.Wednesday; wednesday.Value = WorkingDays.WednesdayValue; WorkingPlan wednesdayPlan = new WorkingPlan(); wednesdayPlan.StartWorking = new TimeSpan(14, 0, 0); wednesdayPlan.EndWorking = new TimeSpan(22, 0, 0); wednesdayPlan.WorkingDay = wednesday; context.WorkingPlans.Add(wednesdayPlan); PARAM thursday = new PARAM(); thursday.Domain = WorkingDays.Domain; thursday.Label = WorkingDays.Thursday; thursday.Value = WorkingDays.ThursdayValue; WorkingPlan thursdayPlan = new WorkingPlan(); thursdayPlan.StartWorking = new TimeSpan(14, 0, 0); thursdayPlan.EndWorking = new TimeSpan(22, 0, 0); thursdayPlan.WorkingDay = thursday; context.WorkingPlans.Add(thursdayPlan); PARAM friday = new PARAM(); friday.Domain = WorkingDays.Domain; friday.Label = WorkingDays.Friday; friday.Value = WorkingDays.FridayValue; WorkingPlan fridayPlan = new WorkingPlan(); fridayPlan.StartWorking = new TimeSpan(14, 0, 0); fridayPlan.EndWorking = new TimeSpan(22, 0, 0); fridayPlan.WorkingDay = friday; context.WorkingPlans.Add(fridayPlan); PARAM saturday = new PARAM(); saturday.Domain = WorkingDays.Domain; saturday.Label = WorkingDays.Saturday; saturday.Value = WorkingDays.SaturdayValue; WorkingPlan saturdayPlan = new WorkingPlan(); saturdayPlan.StartWorking = new TimeSpan(10, 0, 0); saturdayPlan.EndWorking = new TimeSpan(23, 0, 0); saturdayPlan.WorkingDay = saturday; context.WorkingPlans.Add(saturdayPlan); PARAM sunday = new PARAM(); sunday.Domain = WorkingDays.Domain; sunday.Label = WorkingDays.Sunday; sunday.Value = WorkingDays.SundayValue; WorkingPlan sundayPlan = new WorkingPlan(); sundayPlan.StartWorking = new TimeSpan(10, 0, 0); sundayPlan.EndWorking = new TimeSpan(23, 0, 0); sundayPlan.WorkingDay = sunday; context.WorkingPlans.Add(sundayPlan); }