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)); } }
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); }
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)); } }
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))); } }
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)); } }