Пример #1
0
        public void HandlePublishedFilterRequestsEvent(CriteriaUsageEventPayload eventPayload)
        {
            if (eventPayload == null)
            {
                throw new ArgumentNullException("eventPayload");
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Received published filter requests event => " + eventPayload);
            }

            if (eventPayload.Criteria != null && eventPayload.Criteria.Count > 0)
            {
                var view = CollectionViewSource.GetDefaultView(Requests);
                view.Filter = (request) => ((IRequestForQuote)request).DoesRequestMatchFilter(eventPayload.Criteria);
            }
            else
            {
                Requests.Clear();
                Requests.AddRange(TodaysRequests);
                NotifyPropertyChanged("Requests");
                var view = CollectionViewSource.GetDefaultView(Requests);
                view.Filter = null;
            }
        }
Пример #2
0
        public void HandlePublishedSearchRequestsEvent(CriteriaUsageEventPayload eventPayload)
        {
            if (eventPayload == null)
            {
                throw new ArgumentNullException("eventPayload");
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Received published search requests event => " + eventPayload);
            }

            ISearch search = new SearchImpl();

            if (eventPayload.Criteria != null)
            {
                foreach (var criterion in eventPayload.Criteria)
                {
                    search.Criteria.Add(new SearchCriterionImpl {
                        ControlName = criterion.Key, ControlValue = criterion.Value
                    });
                }
            }

            Requests.Clear();
            Requests.AddRange(optionRequestPersistanceManager.GetRequestMatchingAdhocCriteria(search, false));
            NotifyPropertyChanged("Requests");

            if (!Requests.Any())
            {
                MessageBox.Show("No RFQs matching the search criteria were found!\nPlease broaden your search criteria.",
                                "No Search Results Returned.", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
Пример #3
0
        public void HandleBothFilterAndSearchRequests(CriteriaUsageEventPayload eventPayload)
        {
            if (eventPayload == null)
            {
                throw new ArgumentNullException("eventPayload");
            }

            if (eventPayload.IsFilter)
            {
                HandlePublishedFilterRequestsEvent(eventPayload);
            }
            else
            {
                HandlePublishedSearchRequestsEvent(eventPayload);
            }
        }