Ejemplo n.º 1
0
        public void LoadBookingsByDay(string employeeId, DateTime from, DateTime till)
        {
            DateTime date = from;

            BookingsByDay.Clear();

            while (date <= till)
            {
                var bookings = bookingDataService.GetByEmployeeIdAndDate(employeeId, date, date);

                BookingDay bd = new BookingDay();
                foreach (var item in bookings)
                {
                    if (item.Deleted != true)
                    {
                        bd.Bookings.Add(item);
                    }
                }
                bd.sumHours();
                if (bd.BookedHours != TimeSpan.Zero)
                {
                    BookingsByDay.Add(bd);
                }

                date = date.AddDays(1);
            }
        }
Ejemplo n.º 2
0
        public void AddBooking(UserId userId, int day, Slot slot)
        {
            if (UserCanBook(this, userId) && IsBookableDay(Year, Month, day))
            {
                if (BookingDays.ContainsKey(day))
                {
                    var bookingDay = BookingDays[day];

                    if (SlotIsOpen(bookingDay, slot))
                    {
                        bookingDay.AddBooking(slot, userId);
                    }
                    else
                    {
                        throw new SlotIsClosedException();
                    }
                }
                else
                {
                    var bookingDayId = BookingDayId.From(new DateTime(Year, Month, day));
                    var bookingDay   = new BookingDay(bookingDayId, new Dictionary <Slot, UserId>());

                    bookingDay.AddBooking(slot, userId);
                    BookingDays.Add(day, bookingDay);
                }
            }
            else
            {
                throw new UserHasOverbookedException();
            }
        }
Ejemplo n.º 3
0
        private static BookingDayDataModel From(BookingDay entity)
        {
            var dataModelId = entity.Id.Value;

            var dataModel = new BookingDayDataModel
            {
                Id       = dataModelId,
                Bookings = From(entity.Bookings)
            };

            return(dataModel);
        }
Ejemplo n.º 4
0
        private static BookingDay From(BookingDayDataModel dataModel)
        {
            if (dataModel == null)
            {
                return(null);
            }

            var entityId = BookingDayId.With(dataModel.Id);

            var entity = new BookingDay(entityId, From(dataModel.Bookings));

            return(entity);
        }
Ejemplo n.º 5
0
 public static bool SlotIsOpen(BookingDay bookingDay, Slot slot)
 {
     return(!bookingDay.Bookings.ContainsKey(slot));
 }