Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 private WorkingPlan GetDayWorkingPlan(DoorDbContext db, DateTime date)
 {
     //string dayName = date.DayOfWeek.ToString();
     //PARAM dayParam = db.PARAMS.FirstOrDefault(d => d.Domain == WorkingDays.Domain && d.Label == dayName);
     //var dayWorkingPlan = db.WorkingPlans.FirstOrDefault(wp => wp.WorkingDayId == dayParam.Id);
     //return dayWorkingPlan;
     return(WorkingPlanCaсhe.GetDayWorkingPlan(date.DayOfWeek));
 }