Example #1
0
        public async Task GenerateSchedules(int doctorId, int specializationId, TimeSpan startTime, TimeSpan endTime, TimeSpan maxTimePerPatient, DateTime startDay, DateTime endDay, List <DayOfWeek> daysOfWeek)
        {
            for (var dt = startDay; dt <= endDay; dt = dt.AddDays(1))
            {
                if (daysOfWeek.Contains(dt.DayOfWeek))
                {
                    var schedule = await _scheduleDataService.Create(new Schedule
                    {
                        DoctorId          = doctorId,
                        SpecializationId  = specializationId,
                        MaxTimePerPatient = maxTimePerPatient,
                        StartHour         = startTime,
                        EndHour           = endTime,
                        Date   = new DateTime(dt.Year, dt.Month, dt.Day),
                        Status = ScheduleStatus.Ok
                    });

                    for (var ts = startTime; ts < endTime; ts += maxTimePerPatient)
                    {
                        await _reservationDataService.Create(new Reservation
                        {
                            Hour       = ts,
                            ScheduleId = schedule.Id,
                            Status     = ReservationStatus.Free
                        });
                    }
                }
            }
        }
Example #2
0
 public async Task <Reservation> Create(Reservation reservation)
 {
     return(await _reservationDataService.Create(reservation));
 }