Beispiel #1
0
        public async Task <IActionResult> GetPerformerDaySchedule(int performerId, DateTime date)
        {
            var performerSchedule = await _performerSchedulingService.GetPerformerDateScheduleAsync(
                performerId, date.Date);

            var branchSelections = (await _performerSchedulingService
                                    .GetPerformerBranchSelectionsAsync(performerId, date)).ToList();

            var viewModel = new DayScheduleViewModel
            {
                BranchSelections = branchSelections
            };
            var startTime = performerSchedule?.StartTime ?? DefaultPerformerScheduleStartTime;
            var endTime   = performerSchedule?.EndTime ?? DefaultPerformerScheduleEndTime;

            var earliestSelection = branchSelections
                                    .OrderBy(_ => _.ScheduleStartTime)
                                    .FirstOrDefault();
            var latestSelection = branchSelections
                                  .OrderByDescending(_ => _.ScheduleStartTime)
                                  .FirstOrDefault();

            if (earliestSelection == null ||
                startTime.TimeOfDay < earliestSelection.ScheduleStartTime.TimeOfDay)
            {
                viewModel.StartTime = startTime.ToShortTimeString();
            }
            if (latestSelection == null ||
                endTime.TimeOfDay > latestSelection.ScheduleStartTime
                .AddMinutes(latestSelection.ScheduleDuration).TimeOfDay)
            {
                viewModel.EndTime = endTime.ToShortTimeString();
            }

            return(PartialView("_DaySchedulePartial", viewModel));
        }
        private void PopulateDays(DateTime date)
        {
            SetCurrentWeekAndYearNumber(date);
            DateTime dt = date.StartOfWeek(DayOfWeek.Monday);

            FirstDayDate = dt.ToShortDateString();
            var columnHour = new DayScheduleViewModel(this, dt)
            {
                DayHeaderViewModel = new DayHeaderViewModel()
                {
                    Day = "Ora",
                },
                ContentBackground = BackgroundColors.gray,
            };

            foreach (var appointmentViewModel in columnHour.AppointmetList.List)
            {
                appointmentViewModel.DayVisibility = Visibility.Collapsed;
                appointmentViewModel.PatientName   = appointmentViewModel.HourId.Hour;
            }
            WeekDays.Add(columnHour);
            for (int i = 0; i < 7; i++)
            {
                WeekDays.Add(new DayScheduleViewModel(this, dt)
                {
                    DayOfWeek          = dt.DayOfWeek.ToString(),
                    DayHeaderViewModel = new DayHeaderViewModel()
                    {
                        Date = dt.Date.ToShortDateString(),
                        Day  = dt.DayOfWeek.ToString(),
                    }
                });
                dt = dt.AddDays(1);
            }
            LastDayDate = dt.AddDays(-1).ToShortDateString();
        }
 public AppointmentViewModel(DayScheduleViewModel parent)
 {
     Parent = parent;
 }