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 }); } } } }
public async Task <Reservation> Create(Reservation reservation) { return(await _reservationDataService.Create(reservation)); }