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