예제 #1
0
        public async Task Init(Guid roomId, DateTime dateTime)
        {
            try
            {
                var timeList = new List <TimePickerData>();
                for (var i = 9; i < 24; i++)
                {
                    var hour     = ((i % 12) == 0) ? 12 : (i % 12);
                    var timeItem = new TimePickerData(i, 0, false);
                    timeList.Add(timeItem);
                }

                var viewModelList = new List <TimePickerItemViewModel>();

                foreach (var timePickerData in _availableTimeList)
                {
                    viewModelList.Add(new TimePickerItemViewModel(timePickerData));
                }

                TimeList = new ObservableCollection <TimePickerItemViewModel>(viewModelList);
            }
            catch (Exception ex)
            {
                ExceptionService.HandleException(ex);
            }
        }
 public TimeLineItemViewModel(TimePickerData data, TimeBlockType timeBlockType)
 {
     if (!Settings.AmPmNotation)
     {
         var min  = data.Min == 0 ? "00" : data.Min.ToString();
         var hour = data.Hour;
         TimeString    = hour + ":" + min;
         TimeBlockType = timeBlockType;
     }
     else
     {
         var min  = (data.Min == 0) ? "00" : data.Min.ToString();
         var hour = ((data.Hour % 12) == 0) ? "12" : (data.Hour % 12).ToString();
         TimeString    = hour + ":" + min;
         TimeBlockType = timeBlockType;
     }
 }
        public RoomTimeIndexItemViewModel(RoomData data)
        {
            ImageUrl      = data.ImageUrl;
            Title         = data.Title;
            IsAvailable   = data.IsAvailable;
            TimeBlockType = data.TimeBlockType;

            StartEndTime  = data.StartEndTime;
            BlockTimeList = data.BlockTimeList;

            ReservedTimeList = new ObservableCollection <TimePickerData>();

            for (var i = data.StartEndTime.StartTime.Hour; i < data.StartEndTime.EndTime.Hour; i++)
            {
                var item = new TimePickerData(i, 0);
                ReservedTimeList.Add(item);
            }

            TimeLineList = new ObservableCollection <TimeLineItemViewModel>(ReservedTimeList.Select(t => new TimeLineItemViewModel(t, TimeBlockType)));

            ShowRoomCommand = new MvxCommand(() => ShowViewModel <RoomDetailViewModel>(new { roomId = data.RoomId }));
        }
 public TimePickerItemViewModel(TimePickerData data)
 {
     TimeString = data.TimeString;
     IsSelected = data.IsSelected;
 }
        public async Task Init(Guid roomId, DateTime dateTime)
        {
            _roomId   = roomId;
            _dateTime = dateTime;

            try
            {
                var roomModel = await _bookingService.GetRoomAsync(ApiPriority.UserInitiated, roomId);

                var roomReservationsForToday = await _bookingService.GetAllReservationsForDayAsync(ApiPriority.UserInitiated, _dateTime.Year, _dateTime.DayOfYear);

                roomReservationsForToday = roomReservationsForToday.Where(r => r.RoomId == roomId).ToList();
                _allMembers = await _userService.GetAllPublicUsersAsync(ApiPriority.UserInitiated);

                var startHour = 6;
                var endHour   = 24;

                if (roomModel?.OpeningInformation != null)
                {
                    // Check opening hours
                    var openingDay = GetOpeningInfo(roomModel.OpeningInformation, dateTime.DayOfWeek);

                    startHour = openingDay.HourOpen;
                    endHour   = openingDay.HourClose;
                }

                //if (dateTime.Year == DateTime.Now.Year && dateTime.DayOfYear == DateTime.Now.DayOfYear)
                //{
                //    // Is today check current hour
                //    if (DateTime.Now.Hour > startHour)
                //    {
                //        // Later then opening hour
                //        startHour = DateTime.Now.Hour;
                //    }
                //    else if (DateTime.Now.Hour > endHour)
                //    {
                //        // Already closed
                //        startHour = 24;
                //    }

                //    // Remove reservations that have already passed
                //    roomReservationsForToday = roomReservationsForToday.Where(r => r.ReservationEnd.Hour < startHour).ToList();

                //    //foreach (var roomReservationModel in roomReservationsForToday.wh)
                //    //{
                //    //    // Change start date to start of reservation possibilities
                //    //    roomReservationModel.ReservationStart = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, startHour, 0, 0);
                //    //}
                //}

                if (startHour != 24)
                {
                    var startTime = new TimePickerData(startHour, 0);
                    var endTime   = new TimePickerData(endHour, 0);
                    StartEndTime = new TimeBlock(startTime, endTime);

                    UpdateReservations(roomReservationsForToday);
                }
            }
            catch (Exception ex)
            {
                ExceptionService.HandleException(ex);
            }
        }
예제 #6
0
 public TimeBlock(TimePickerData startTime, TimePickerData endTime, string reservedByName = null)
 {
     StartTime      = startTime;
     EndTime        = endTime;
     ReservedByName = reservedByName;
 }