/// <summary>
        /// Method to construct the search criteria
        /// </summary>
        /// <returns>ContactsSearchCriteria</returns>
        public ContactFilter_V01 GetContactSearchCriteria()
        {
            if (Enabled == false ||
                SearchContactsDropDown.SelectedIndex < 0 ||
                String.IsNullOrEmpty(SearchField.Text))
            {
                return(null);
            }

            ContactFilter_V01 searchCriteria = new ContactFilter_V01();


            if (SearchContactsDropDown.SelectedValue == "NameContains")
            {
                searchCriteria.NameSearchTypeInd = ContactNameSearchType.NameContains;
            }
            else if (SearchContactsDropDown.SelectedValue == "FirstNameStartsWith")
            {
                searchCriteria.NameSearchTypeInd = ContactNameSearchType.FirstNameStartsWith;
            }
            else
            {
                searchCriteria.NameSearchTypeInd = ContactNameSearchType.LastNameStartsWith;
            }
            searchCriteria.Name             = SearchField.Text.Trim();
            searchCriteria.IsAdvancedSearch = false;
            return(searchCriteria);
        }
        private static List <Contact_V03> FilterContacts(string DistributorID,
                                                         ContactFilter_V01 contactFilter,
                                                         List <Contact_V03> allContacts)
        {
            if (contactFilter == null)
            {
                return(new List <Contact_V03>());
            }

            List <int> matchedContactIDs = null;

            if (ValidateContactFilter(contactFilter))
            {
                return(allContacts);
            }

            using (var proxy = ServiceClientProvider.GetDistributorCRMServiceProxy())
            {
                var request = new ListContactsByFilterRequest_V01();

                request.DistributorID = DistributorID;
                request.ContactFilter = contactFilter;

                var response = proxy.ListContactsByFilter(new ListContactsByFilterRequest(request)).ListContactsByFilterResult as ListContactsByFilterResponse_V01;
                if (response != null && response.Status == ServiceResponseStatusType.Success)
                {
                    matchedContactIDs = response.ContactIDs;
                }
                else
                {
                    return(null);
                }
            }

            if (allContacts == null)
            {
                return(null);
            }

            if (matchedContactIDs.Count == 0)
            {
                return(new List <Contact_V03>());
            }

            var result = new List <Contact_V03>();

            var filteredContacts = allContacts.Where(contact => matchedContactIDs.Contains(contact.ContactID));

            if (null != filteredContacts && filteredContacts.Count() > 0)
            {
                result = filteredContacts.ToList();
            }

            return(result);
        }
        /// <summary>
        /// Event Click handler for the Search button
        /// </summary>
        /// <param name="sender">object</param>
        /// <param name="e">EventArgs</param>
        protected void BasicSearch_click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(SearchField.Text.Trim()))
            {
                ContactFilter_V01 searchCriteria = GetContactSearchCriteria();

                //used in MyContactsBasic page
                RaiseBubbleEvent(this, new CommandEventArgs("BasicSearch", searchCriteria));
            }
            else
            {
                ClearSearch_click(sender, e);
            }
        }
 private static bool ValidateContactFilter(ContactFilter_V01 contactFilter)
 {
     if (string.IsNullOrEmpty(contactFilter.BirthDay) && string.IsNullOrEmpty(contactFilter.City) &&
         string.IsNullOrEmpty(contactFilter.ContactSource) && string.IsNullOrEmpty(contactFilter.ContactType) &&
         string.IsNullOrEmpty(contactFilter.Country) && string.IsNullOrEmpty(contactFilter.Email) &&
         string.IsNullOrEmpty(contactFilter.FirstName) && string.IsNullOrEmpty(contactFilter.LastName) &&
         string.IsNullOrEmpty(contactFilter.Name) &&
         string.IsNullOrEmpty(contactFilter.State) && string.IsNullOrEmpty(contactFilter.Interest) &&
         string.IsNullOrEmpty(contactFilter.ZipCode) && string.IsNullOrEmpty(contactFilter.PhoneNumber) &&
         contactFilter.SearchByEmail == false)
     {
         return(true);
     }
     return(false);
 }
示例#5
0
        protected override bool OnBubbleEvent(object source, EventArgs args)
        {
            CommandEventArgs command = args as CommandEventArgs;

            if (command != null)
            {
                switch (command.CommandName)
                {
                case "LoadContacts":

                    ContactFilter_V01 searchCriteria = contactsBasicSearch.GetContactSearchCriteria();
                    if (searchCriteria != null)
                    {
                        OnSearch(searchCriteria);
                    }
                    else
                    {
                        LoadContacts();
                    }

                    ContactsListView1.DataBind();
                    break;

                case "BasicSearch":
                    OnSearch((ContactFilter_V01)command.CommandArgument);
                    ContactsListView1.DataBind();
                    break;

                case "ClearSearch":
                    //begin - shan - mar 20, 2012 - clear the session value
                    //else it is pre-select the items whenever clear button is clicked
                    Session["ListDelete"] = null;
                    //end
                    LoadContacts();
                    ContactsListView1.DataBind();
                    break;

                case "SelectAll":
                    ContactsListView1.SelectAll(bool.Parse(command.CommandArgument.ToString()));
                    break;

                default:
                    break;
                }
            }

            return(base.OnBubbleEvent(source, args));
        }
示例#6
0
 protected void OnSearch(ContactFilter_V01 contactsSearchCriteria)
 {
     if (contactsSearchCriteria != null)
     {
         List <Contact_V03> filteredContacts = ContactsDataProvider.FilterContacts(DistributorID, contactsSearchCriteria);
         if (null != filteredContacts)
         {
             ContactsListView1.OnContactsLoaded(filteredContacts, new List <string>()
             {
                 "FollowUp", "FullNameNotLinked", "CreatedDate", "Fullname", "Email", "ContactSource"
             });
         }
     }
     else
     {
         LoadContacts();
     }
 }
        public static List <Contact_V03> GetDistributorByFilter(string distributorID, ContactFilter_V01 contactFilterV01)
        {
            var request = new ListContactsByFilterRequest_V01
            {
                ContactFilter = contactFilterV01,
                DistributorID = distributorID
            };

            using (var proxy = ServiceClientProvider.GetDistributorCRMServiceProxy())
            {
                try
                {
                    var response = proxy.ListDistributorByFilter(new ListDistributorByFilterRequest(request)).ListDistributorByFilterResult as ListContactsByOwnerResponse_V01;
                    if (response != null && response.Status == ServiceResponseStatusType.Success)
                    {
                        return(response.Contacts);
                    }
                }
                catch (Exception ex)
                {
                    Log(ex, proxy);
                    return(new List <Contact_V03>());
                }
            }

            return(new List <Contact_V03>());
        }
        public static List <Contact_V03> FilterContacts(string DistributorID, ContactFilter_V01 contactFilter)
        {
            var contactList = GetContactsByOwner(DistributorID);

            return(FilterContacts(DistributorID, contactFilter, contactList));
        }