public List <EventCustomerRegistrationViewData> Create(IEnumerable <CustomerOrderBasicInfoRow> customerOrderBasicInfoTypedView, IEnumerable <AssignedPhysicianViewModel> assignedPhysicians) { var eventCustomerRegistrationViewData = new List <EventCustomerRegistrationViewData>(); if (customerOrderBasicInfoTypedView.IsNullOrEmpty()) { return(eventCustomerRegistrationViewData); } var eventId = customerOrderBasicInfoTypedView.First().EventId; var slots = _eventSchedulingSlotRepository.GetbyEventId(eventId); var eventPodRooms = _eventPodRoomRepository.GetByEventId(eventId); foreach (var orderBasicInfoTypedView in customerOrderBasicInfoTypedView) { var eventCustomerRegistrationViewDatum = new EventCustomerRegistrationViewData(); _eventCustomerViewDataFactory.Create(eventCustomerRegistrationViewDatum, orderBasicInfoTypedView); if (assignedPhysicians != null) { var assignedPhysician = assignedPhysicians.Where(ap => ap.CustomerId == eventCustomerRegistrationViewDatum.CustomerId).SingleOrDefault(); eventCustomerRegistrationViewDatum.AssignedPhysicians = assignedPhysician; } eventCustomerRegistrationViewDatum.CashPayment = orderBasicInfoTypedView.Cash; eventCustomerRegistrationViewDatum.CheckPayment = orderBasicInfoTypedView.Check; eventCustomerRegistrationViewDatum.ChargeCardPayment = orderBasicInfoTypedView.CreditCard; eventCustomerRegistrationViewDatum.ECheckPayment = orderBasicInfoTypedView.Echeck; eventCustomerRegistrationViewDatum.GiftCertificatePayment = orderBasicInfoTypedView.Gc; eventCustomerRegistrationViewDatum.InsurancePayment = orderBasicInfoTypedView.InsurancePayment; eventCustomerRegistrationViewDatum.FirstName = orderBasicInfoTypedView.FirstName; eventCustomerRegistrationViewDatum.LastName = orderBasicInfoTypedView.LastName; eventCustomerRegistrationViewDatum.MiddleName = orderBasicInfoTypedView.MiddleName; eventCustomerRegistrationViewDatum.EventCount = orderBasicInfoTypedView.EventCount; eventCustomerRegistrationViewDatum.ScheduleById = orderBasicInfoTypedView.ScheduledByOrgRoleUserId; eventCustomerRegistrationViewDatum.AppointmentBlockReason = orderBasicInfoTypedView.AppointBlockReason; eventCustomerRegistrationViewDatum.UserCreatedOn = orderBasicInfoTypedView.UserCreatedOn; eventCustomerRegistrationViewDatum.CustomerHealthInfo = Convert.ToBoolean(orderBasicInfoTypedView.CustomerHealthInfo); eventCustomerRegistrationViewDatum.PhoneNumber = orderBasicInfoTypedView.Phone; eventCustomerRegistrationViewDatum.Email1 = orderBasicInfoTypedView.Email1; eventCustomerRegistrationViewDatum.AppointmentSlotStatus = AppointmentSlotStatus.Booked; var appointment = _appointmentRepository.GetById(orderBasicInfoTypedView.AppointmentId); eventCustomerRegistrationViewDatum.RoomSlots = GetRoomSlots(slots, appointment, eventPodRooms); eventCustomerRegistrationViewData.Add(eventCustomerRegistrationViewDatum); } return(eventCustomerRegistrationViewData); }
public CallCenterRepMetricDetailViewData CreateCallCenterRepMetricDetailViewDatum(EventCustomerRegistrationViewData eventCustomer, Order order, CallCenterRep callCenterRep) { // It is a cancelled record. if (order == null || !order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted)) { order = null; } var amount = order != null ? order.DiscountedTotal : 0m; var isPrePaid = order != null && order.TotalAmountPaid >= order.DiscountedTotal; var paymentDate = isPrePaid && order.DataRecorderMetaData != null ? (DateTime?)order.DataRecorderMetaData.DateCreated : null; var packageName = eventCustomer.PackageName; packageName = !string.IsNullOrEmpty(packageName) ? !string.IsNullOrEmpty(eventCustomer.AdditinalTest) ? packageName + ", " + eventCustomer.AdditinalTest : packageName : eventCustomer.AdditinalTest; return(new CallCenterRepMetricDetailViewData { EventSignUp = eventCustomer.EventSignupDate, EventDate = eventCustomer.EventDate, Customer = eventCustomer.FirstName + " " + eventCustomer.LastName, AttendedState = eventCustomer.EventDate > DateTime.Now ? "Scheduled" : "Attended", CustomerId = eventCustomer.CustomerId, Package = packageName, EventId = eventCustomer.EventId, Amount = amount, CallCenterRep = callCenterRep.NameAsString, PaymentDate = paymentDate, IsPrePaid = isPrePaid, CustomerAddress = null }); }