public EventAppointmentListModel Create(IEnumerable <EventCustomer> eventCustomers, IEnumerable <EventSchedulingSlot> appointmentSlots, IEnumerable <Customer> customers, IEnumerable <OrderedPair <long, string> > packages, IEnumerable <OrderedPair <long, string> > tests, Event eventData, IEnumerable <Appointment> bookedAppointments, IEnumerable <EventPodRoom> eventPodRooms) { var eventAppointmentListModel = new EventAppointmentListModel(); var eventAppointmentBasicInfoModels = new List <EventAppointmentBasicInfoModel>(); var freeSlots = appointmentSlots.Where(ap => ap.Status != AppointmentStatus.Booked).Select(ap => ap).ToArray(); if (!freeSlots.IsNullOrEmpty()) { var unBookedModels = Create(freeSlots); eventAppointmentBasicInfoModels.AddRange(unBookedModels); } if (!bookedAppointments.IsNullOrEmpty()) { var bookedSlots = appointmentSlots.Where(ap => ap.Status == AppointmentStatus.Booked).Select(ap => ap).ToArray(); var bookedModels = Create(eventCustomers, customers, packages, tests, bookedAppointments, bookedSlots); eventAppointmentBasicInfoModels.AddRange(bookedModels); } if (eventData != null) { eventAppointmentListModel.EventId = eventData.Id; eventAppointmentListModel.EventName = eventData.Name; eventAppointmentListModel.EventDate = eventData.EventDate; } eventAppointmentListModel.EventPodRooms = eventPodRooms; eventAppointmentListModel.EventAppointmentViewModel = eventAppointmentBasicInfoModels.OrderBy(ea => ea.StartTime); return(eventAppointmentListModel); }
public EventAppointmentListModel Create(IEnumerable <EventSchedulingSlot> appointmentSlots, Event eventData, IEnumerable <EventPodRoom> eventPodRooms) { var eventAppointmentListModel = new EventAppointmentListModel(); var eventAppointmentBasicInfoModels = Create(appointmentSlots); eventAppointmentListModel.EventAppointmentViewModel = eventAppointmentBasicInfoModels.OrderBy(ep => ep.StartTime); eventAppointmentListModel.EventPodRooms = eventPodRooms; if (eventData != null) { eventAppointmentListModel.EventId = eventData.Id; eventAppointmentListModel.EventName = eventData.Name; eventAppointmentListModel.EventDate = eventData.EventDate; } return(eventAppointmentListModel); }