コード例 #1
0
        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);
        }
コード例 #2
0
        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
            });
        }