Example #1
0
        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);
        }
Example #2
0
        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);
        }