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));
 }
Exemplo n.º 3
0
        /// <summary>
        /// Get quiq data for free placec in month
        /// </summary>
        /// <param name="year">year</param>
        /// <param name="month">Month</param>
        /// <returns>Free placec</returns>
        public int[] GetMonthFreeHelmetsDefault(int year, int month)
        {
            int daysInMoth = DateLogicHelper.GetDaysInMonth(year, month);

            int[] result = new int[daysInMoth];
            for (int i = 0; i < daysInMoth; i++)
            {
                DateTime dt = new DateTime(year, month, i + 1);
                result[i] = WorkingPlanCaсhe.GetWorkingHours(dt.DayOfWeek) * activeHelmets;
            }

            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Get accurate data
        /// </summary>
        /// <param name="year">Year</param>
        /// <param name="month">Month</param>
        /// <param name="day">Day</param>
        /// <returns>Free placec</returns>
        public int GetFreeHelmetCount(int year, int month, int day)
        {
            DateTime dt          = new DateTime(year, month, day);
            int      freeHelmets = WorkingPlanCaсhe.GetWorkingHours(dt.DayOfWeek) * activeHelmets;

            using (var db = new DoorDbContext())
            {
                var dayReservation = db.Reservations.Include(r => r.HourReservations.Select(hr => hr.HelmetWorkStations)).FirstOrDefault(r => r.DateReservation.HasValue && r.DateReservation.Value == dt);///.Year == year && r.DateReservation.Value.Month == month && r.DateReservation.Value.Day == day);
                if (dayReservation != null)
                {
                    var busyHelmetsHours = dayReservation.HourReservations.SelectMany(hr => hr.HelmetWorkStations).Count();
                    freeHelmets = freeHelmets - busyHelmetsHours;
                }
            }
            return(freeHelmets);
        }