internal static ICollection<Appointment> GenerateDayAppointmentsData(MyHealthContext context, DateTime day, string userEmail) { var totalAppointments = Randomize.Next(1, DataInitializerValues.MaxAppointmentsPerDay); var appointments = new List<Appointment>(); var allowedMaxDurationPerBlock = (DataInitializerValues.EndOfWorkingDay - DataInitializerValues.StartOfWorkingDay) / totalAppointments; for (var i = 0; i < totalAppointments; i++) { var duration = Randomize.Next(DataInitializerValues.MinAppointmentHours, DataInitializerValues.MaxAppointmentHours); var blockStartHour = DataInitializerValues.StartOfWorkingDay + i * allowedMaxDurationPerBlock; var blockEndHour = DataInitializerValues.StartOfWorkingDay + (i + 1) * allowedMaxDurationPerBlock; var startHour = Randomize.Next(blockStartHour, blockEndHour - duration); var start = new DateTime(day.Year, day.Month, day.Day, startHour, GenerateRandomBoolean() ? 0 : 30, 0); var endHour = start.AddHours(duration); var appointment = new Appointment { UserEmail = userEmail, Description = DataInitializerValues.AppointmentDescriptions[Randomize.Next(1, DataInitializerValues.AppointmentDescriptions.Length)], Start = start, End = endHour }; appointments.Add(appointment); }; context.Appointments.AddRange(appointments); context.SaveChanges(); return appointments; }
internal static void GenerateAppointmentsAttendessRelationData(MyHealthContext context, Appointment appointment, ICollection<Attendee> attendees) { foreach (var attendee in attendees) { appointment.AppointmentAttendees.Add(new AppointmentAttendee { AttendeeId = attendee.Id, AppointmentId = appointment.Id }); } context.SaveChanges(); }