Exemple #1
0
        public IPredicate CreatePredicate(EventCustomerFilterMode eventCustomerFilterMode)
        {
            switch (eventCustomerFilterMode)
            {
            case EventCustomerFilterMode.Actual:
                return(CustomerOrderBasicInfoFields.IsTestAttended == true);

            case EventCustomerFilterMode.Cash:
                return(CustomerOrderBasicInfoFields.Cash > 0);

            case EventCustomerFilterMode.Check:
                return(CustomerOrderBasicInfoFields.Check > 0);

            case EventCustomerFilterMode.CreditCard:
                return(CustomerOrderBasicInfoFields.CreditCard > 0);

            case EventCustomerFilterMode.ECheck:
                return(CustomerOrderBasicInfoFields.Echeck > 0);

            case EventCustomerFilterMode.NoShow:
                return(CustomerOrderBasicInfoFields.Noshow == true);

            case EventCustomerFilterMode.Paid:
                return(CustomerOrderBasicInfoFields.IsPaid == true);

            case EventCustomerFilterMode.Registered:
                return(CustomerOrderBasicInfoFields.Noshow == false);

            case EventCustomerFilterMode.UnPaid:
                return(CustomerOrderBasicInfoFields.IsPaid == false);

            default:
                throw new NotSupportedException(string.Format("The FilterMode {0} is not yet supported.",
                                                              eventCustomerFilterMode));
            }
        }
Exemple #2
0
        public List <EventCustomerRegistrationViewData> GetEventCustomerRegistrationViewData(long eventId, EventCustomerFilterMode eventCustomerFilterMode)
        {
            switch (eventCustomerFilterMode)
            {
            case EventCustomerFilterMode.Actual:
            case EventCustomerFilterMode.Cash:
            case EventCustomerFilterMode.Check:
            case EventCustomerFilterMode.ECheck:
            case EventCustomerFilterMode.CreditCard:
            case EventCustomerFilterMode.NoShow:
            case EventCustomerFilterMode.Paid:
            case EventCustomerFilterMode.Registered:
            case EventCustomerFilterMode.UnPaid:
            case EventCustomerFilterMode.UnPaidNoShowExcluded:
            case EventCustomerFilterMode.LeftWithoutScreening:
                return(_eventCustomerRegistrationViewDataRepository.GetEventCustomerOrdersForEvent(eventCustomerFilterMode, eventId));

            case EventCustomerFilterMode.Filled:
                return(_eventCustomerRegistrationViewDataRepository.GetEventCustomerOrdersForEvent(eventId));

            case EventCustomerFilterMode.All:
            {
                var unBookedAppointments = _slotService.GetSlots(eventId, AppointmentStatus.Free);

                var blockedAppointments = _slotService.GetSlots(eventId, AppointmentStatus.Blocked);

                var unBookedEventCustomerRegistrationViewData = _eventCustomerRegistrationViewDataFactory.Create(unBookedAppointments, AppointmentSlotStatus.Open);
                var blockedEventCustomerRegistrationViewData  = _eventCustomerRegistrationViewDataFactory.Create(blockedAppointments, AppointmentSlotStatus.Blocked);
                var bookedEventCustomerRegistrationViewData   = _eventCustomerRegistrationViewDataRepository.GetEventCustomerOrdersForEvent(eventId);
                bookedEventCustomerRegistrationViewData = bookedEventCustomerRegistrationViewData.Concat(unBookedEventCustomerRegistrationViewData).ToList();
                bookedEventCustomerRegistrationViewData = bookedEventCustomerRegistrationViewData.Concat(blockedEventCustomerRegistrationViewData).ToList();
                return(bookedEventCustomerRegistrationViewData.OrderBy(ec => ec.AppointmentStartTime).ToList());
            }

            case EventCustomerFilterMode.Open:
            {
                var unBookedAppointments = _slotService.GetSlots(eventId, AppointmentStatus.Free);
                return(_eventCustomerRegistrationViewDataFactory.Create(unBookedAppointments, AppointmentSlotStatus.Open));
            }

            case EventCustomerFilterMode.Blocked:
            {
                var blockedAppointments = _slotService.GetSlots(eventId, AppointmentStatus.Blocked);
                return(_eventCustomerRegistrationViewDataFactory.Create(blockedAppointments, AppointmentSlotStatus.Blocked));
            }
            }
            return(null);
        }
Exemple #3
0
        public IEnumerable <CustomerOrderBasicInfoRow> GetFilteredData(EventCustomerFilterMode eventCustomerFilterMode, CustomerOrderBasicInfoTypedView customerOrderBasicInfoTypedView)
        {
            switch (eventCustomerFilterMode)
            {
            case EventCustomerFilterMode.Actual:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.IsTestAttended == 1));
            }

            case EventCustomerFilterMode.Cash:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.Cash != 0m));
            }

            case EventCustomerFilterMode.Check:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.Check != 0m));
            }

            case EventCustomerFilterMode.CreditCard:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.CreditCard != 0m));
            }

            case EventCustomerFilterMode.ECheck:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.Echeck != 0m));
            }

            case EventCustomerFilterMode.NoShow:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.Noshow == false));
            }

            case EventCustomerFilterMode.Paid:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.IsPaid == 1));
            }

            case EventCustomerFilterMode.Registered:
            {
                return(customerOrderBasicInfoTypedView);
            }

            case EventCustomerFilterMode.UnPaid:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.IsPaid == 0));
            }

            case EventCustomerFilterMode.UnPaidNoShowExcluded:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.IsPaid == 0 && q.Noshow == false));
            }

            case EventCustomerFilterMode.LeftWithoutScreening:
            {
                return(customerOrderBasicInfoTypedView.Where(q => q.LeftWithoutScreeningReasonId > 0));
            }

            default:
                throw new NotSupportedException(string.Format("The FilterMode {0} is not yet supported.",
                                                              eventCustomerFilterMode));
            }
        }
Exemple #4
0
        public List <EventCustomerRegistrationViewData> GetEventCustomerOrdersForEvent(EventCustomerFilterMode eventCustomerFilterMode, long eventId)
        {
            var customerOrderBasicInfoTypedView = new CustomerOrderBasicInfoTypedView();

            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData     = new LinqMetaData(myAdapter);
                var eventCustomerIds = linqMetaData.EventCustomers.Where(ec => ec.EventId == eventId).Select(ec => ec.EventCustomerId);
                // Hack: This is done to minimize the fetch time for the query.
                var fieldCompareRangePredicate = new FieldCompareRangePredicate(CustomerOrderBasicInfoFields.EventCustomerId, null, eventCustomerIds);

                var bucket = new RelationPredicateBucket(fieldCompareRangePredicate);

                //var bucket = new RelationPredicateBucket(CustomerOrderBasicInfoFields.EventId == eventId);

                //var predicates = _eventCustomerFilterPredicateFactory.CreatePredicate(eventCustomerFilterMode);
                //foreach (var predicate in predicates)
                //{
                //    bucket.PredicateExpression.AddWithAnd(predicate);
                //}

                myAdapter.FetchTypedView(customerOrderBasicInfoTypedView, bucket, false);

                IEnumerable <CustomerOrderBasicInfoRow> customerOrderBasicInfoRows = _eventCustomerFilterPredicateFactory.GetFilteredData(eventCustomerFilterMode, customerOrderBasicInfoTypedView);
                return(_factory.Create(customerOrderBasicInfoRows, _physicianAssignmentService.GetPhysicianAssignments(eventId, eventCustomerIds)));
            }
        }
Exemple #5
0
        public List <IPredicate> CreatePredicate(EventCustomerFilterMode eventCustomerFilterMode)
        {
            var predicates = new List <IPredicate>();

            switch (eventCustomerFilterMode)
            {
            case EventCustomerFilterMode.Actual:
            {
                predicates.Add(CustomerOrderBasicInfoFields.IsTestAttended == 1);
                return(predicates);
            }

            case EventCustomerFilterMode.Cash:
            {
                predicates.Add(CustomerOrderBasicInfoFields.Cash != 0m);
                return(predicates);
            }

            case EventCustomerFilterMode.Check:
            {
                predicates.Add(CustomerOrderBasicInfoFields.Check != 0m);
                return(predicates);
            }

            case EventCustomerFilterMode.CreditCard:
            {
                predicates.Add(CustomerOrderBasicInfoFields.CreditCard != 0m);
                return(predicates);
            }

            case EventCustomerFilterMode.ECheck:
            {
                predicates.Add(CustomerOrderBasicInfoFields.Echeck != 0m);
                return(predicates);
            }

            case EventCustomerFilterMode.NoShow:
            {
                predicates.Add(CustomerOrderBasicInfoFields.Noshow == 1);
                return(predicates);
            }

            case EventCustomerFilterMode.Paid:
            {
                predicates.Add(CustomerOrderBasicInfoFields.IsPaid == 1);
                return(predicates);
            }

            case EventCustomerFilterMode.Registered:
            {
                return(predicates);
            }

            case EventCustomerFilterMode.UnPaid:
            {
                predicates.Add(CustomerOrderBasicInfoFields.IsPaid == 0);
                return(predicates);
            }

            case EventCustomerFilterMode.LeftWithoutScreening:
            {
                predicates.Add(CustomerOrderBasicInfoFields.LeftWithoutScreeningReasonId > 0);
                return(predicates);
            }

            case EventCustomerFilterMode.UnPaidNoShowExcluded:
            {
                predicates.Add(CustomerOrderBasicInfoFields.IsPaid == 0);
                predicates.Add(CustomerOrderBasicInfoFields.Noshow == 0);
                return(predicates);
            }

            default:
                throw new NotSupportedException(string.Format("The FilterMode {0} is not yet supported.",
                                                              eventCustomerFilterMode));
            }
        }