public IEnumerable <EventAppointmentBasicInfoModel> Create(IEnumerable <EventCustomer> eventCustomers, IEnumerable <Customer> customers, IEnumerable <OrderedPair <long, string> > packages, IEnumerable <OrderedPair <long, string> > tests, IEnumerable <Appointment> bookedAppointments, IEnumerable <EventSchedulingSlot> appointmentSlots) { var eventAppointmentBasicInfoModels = new List <EventAppointmentBasicInfoModel>(); var slotIdAppointmentIdPairs = (from bookedAppointment in bookedAppointments from slotId in bookedAppointment.SlotIds select new OrderedPair <long, long>(slotId, bookedAppointment.Id)).ToList(); appointmentSlots.ToList() .ForEach(slot => { var appointmentId = slotIdAppointmentIdPairs.Where(sa => sa.FirstValue == slot.Id).Select(sa => sa.SecondValue).SingleOrDefault(); var eventCustomer = eventCustomers.SingleOrDefault(ec => ec.AppointmentId == appointmentId); var customerName = string.Empty; var orderPurchased = string.Empty; long customerid = 0; if (eventCustomer != null) { customerName = customers.Where(c => c.CustomerId == eventCustomer.CustomerId).SingleOrDefault().NameAsString; customerid = eventCustomer.CustomerId; var package = packages.Where(p => p.FirstValue == eventCustomer.Id).FirstOrDefault(); var selectedTests = tests.Where(t => t.FirstValue == eventCustomer.Id); if (package != null) { orderPurchased = package.SecondValue; } if (selectedTests.Count() > 0) { orderPurchased = string.IsNullOrEmpty(orderPurchased) ? string.Join(" + ", selectedTests.Select(s => s.SecondValue)) : orderPurchased + " + " + string.Join(" + ", selectedTests.Select(s => s.SecondValue)); } } var eventAppointmentEditModel = new EventAppointmentBasicInfoModel { AppointmentId = appointmentId, AppointmentStatus = AppointmentStatus.Booked, CustomerId = customerid, OrderPurchased = orderPurchased, Name = customerName, StartTime = slot.StartTime, EndTime = slot.EndTime, EventPodRoomId = slot.EventPodRoomId }; eventAppointmentBasicInfoModels.Add(eventAppointmentEditModel); }); return(eventAppointmentBasicInfoModels); }
public IEnumerable <EventAppointmentBasicInfoModel> Create(IEnumerable <EventSchedulingSlot> appointmentSlots) { var eventAppointmentBasicInfoModels = new List <EventAppointmentBasicInfoModel>(); appointmentSlots.ToList().ForEach(ap => { var eventAppointmentEditModel = new EventAppointmentBasicInfoModel { AppointmentId = ap.Id, AppointmentStatus = ap.Status, StartTime = ap.StartTime, EndTime = ap.EndTime, Reason = ap.Reason, EventPodRoomId = ap.EventPodRoomId }; eventAppointmentBasicInfoModels.Add(eventAppointmentEditModel); }); return(eventAppointmentBasicInfoModels); }