public async Task <ContactFields> GetContactAsync(SalesForceResponse salesForceResponse, string contactNMLSID) { LoggerService.Debug("Entered GetContactAsync()", "INFO"); string query = "Select conta.ID, conta.Owner.ID,conta.Account.ID From Contact conta where conta.NMLS__c = '" + contactNMLSID + "'"; string queryURL = salesForceResponse.instance_url + "/services/data/v24.0/query/?q=" + query; ContactFields conFields = new ContactFields(); using (HttpClient httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Add("Authorization", "OAuth " + salesForceResponse.access_token); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpResponseMessage = await httpClient.GetAsync(queryURL); } if (httpResponseMessage != null && httpResponseMessage.IsSuccessStatusCode) { var ContactContent = await httpResponseMessage.Content.ReadAsStringAsync(); con.ContactDetails conResult = (con.ContactDetails)javaScriptSerializer.Deserialize(ContactContent, typeof(con.ContactDetails)); if (conResult != null && conResult.records.Count > 0) { conFields.ContactId = conResult.records[0].Id; conFields.OwnerId = conResult.records[0].Owner.Id; conFields.AccountId = conResult.records[0].account.Id; } } LoggerService.Debug("Leaving GetContactAsync()", "INFO"); return(conFields); }
public List <Contact> FindByLookup(string lookup, ContactFields selectedContactField) { //Switch based upon which enum is passed in that is being searched by. List <Contact> result = new List <Contact>(); switch (selectedContactField) { case ContactFields.NAME: result = _contactStore.Where(c => c.FirstName.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase) || c.LastName.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase)).ToList(); break; case ContactFields.PHONENUMBER: result = SearchByPhoneNumber(lookup); break; case ContactFields.CITY: result = _contactStore.Where(c => c.Address.City.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase)).ToList(); break; case ContactFields.JOB: result = _contactStore.Where(c => c.JobTitle.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase)).ToList(); break; case ContactFields.ORGANIZATION: result = _contactStore.Where(c => c.Organization.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase)).ToList(); break; case ContactFields.EMAIL: result = _contactStore.Where(c => (c.PrimaryEmail != null && c.PrimaryEmail.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase)) || (c.SecondaryEmail != null && c.SecondaryEmail.StartsWith(lookup, StringComparison.InvariantCultureIgnoreCase))).ToList(); break; } return(result); }
public void Search(string criteria, int index) { if (!string.IsNullOrEmpty(criteria) && criteria.Length > 0 && index != 0) { //Search looks through the repo by lookup on the criteria. ContactFields selectedContactField = ContactFields.NONE; switch (index) { case 1: selectedContactField = ContactFields.NAME; break; case 2: selectedContactField = ContactFields.ORGANIZATION; break; case 3: selectedContactField = ContactFields.JOB; break; case 4: selectedContactField = ContactFields.CITY; break; case 5: selectedContactField = ContactFields.PHONENUMBER; break; case 6: selectedContactField = ContactFields.EMAIL; break; } CurrentContacts = new ObservableCollection <Contact>(_contactRepository.FindByLookup(criteria, selectedContactField)); StatusText = string.Format("{0} contacts found.", CurrentContacts.Count); } else { CurrentContacts = new ObservableCollection <Contact>( _contactRepository.FindAll() ); StatusText = "Displaying all contacts."; } }
/// <summary> /// Initializes a new instance of the <see cref="Contact" /> class. /// </summary> public Contact() : base(CLASS_NAME) { mFields = new ContactFields(this); }
private string ReplaceAutomationMergeFields(string HtmlContent, Contact contact, IEnumerable <FieldValueOption> customFieldValueOptions, Company Company) { try { var doc = new HtmlDocument(); doc.LoadHtml(HtmlContent); var allspantags = doc.DocumentNode.Descendants("span"); var contacttype = contact.GetType().Name; Person person = default(Person); Company company = default(Company); if (contacttype == "Person") { person = (Person)contact; } else { company = (Company)contact; } var defaultaddress = contact.Addresses.Where(i => i.IsDefault).FirstOrDefault(); foreach (var node in allspantags) { var nodetype = node.Attributes.Where(x => x.Name == "fieldtype").Select(x => x.Value).FirstOrDefault(); if (nodetype == "basicfield") { ContactFields contactfield = default(ContactFields); Enum.TryParse(node.Id, out contactfield); #region ContactFields if (contactfield == ContactFields.FirstNameField) { node.InnerHtml = node.InnerHtml.Replace("*|FIRSTNAME|*", person == null ? "" : person.FirstName); } else if (contactfield == ContactFields.LastNameField) { node.InnerHtml = node.InnerHtml.Replace("*|LASTNAME|*", person == null ? "" : person.LastName); } else if (contactfield == ContactFields.CompanyNameField) { node.InnerHtml = node.InnerHtml.Replace("*|COMPANY|*", Company == null ? "" : Company.CompanyName == null ? "" : Company.CompanyName); } else if (contactfield == ContactFields.TitleField) { node.InnerHtml = node.InnerHtml.Replace("*|TITLE|*", person == null ? "" : person.Title); } else if (contactfield == ContactFields.PrimaryEmail) { var primaryemail = contact.Emails.Where(i => i.IsPrimary).Select(x => x.EmailId).FirstOrDefault(); node.InnerHtml = node.InnerHtml.Replace("*|EMAILID|*", primaryemail == null ? "" : primaryemail); } #endregion #region Socail else if (contactfield == ContactFields.FacebookUrl) { node.InnerHtml = node.InnerHtml.Replace("*|FBURL|*", contact.FacebookUrl != null ? contact.FacebookUrl.URL : ""); } else if (contactfield == ContactFields.LinkedInUrl) { node.InnerHtml = node.InnerHtml.Replace("*|LINKEDURL|*", contact.LinkedInUrl != null ? contact.LinkedInUrl.URL : ""); } else if (contactfield == ContactFields.GooglePlusUrl) { node.InnerHtml = node.InnerHtml.Replace("*|GPLUSURL|*", contact.GooglePlusUrl != null ? contact.GooglePlusUrl.URL : ""); } else if (contactfield == ContactFields.TwitterUrl) { node.InnerHtml = node.InnerHtml.Replace("*|TWITERURL|*", contact.TwitterUrl != null ? contact.TwitterUrl.URL : ""); } else if (contactfield == ContactFields.WebsiteUrl) { node.InnerHtml = node.InnerHtml.Replace("*|WEBSITEURL|*", contact.WebsiteUrl != null ? contact.WebsiteUrl.URL : ""); } else if (contactfield == ContactFields.BlogUrl) { node.InnerHtml = node.InnerHtml.Replace("*|BLOGURL|*", contact.BlogUrl != null ? contact.BlogUrl.URL : ""); } #endregion #region Address Mapping else if (contactfield == ContactFields.AddressLine1Field) { node.InnerHtml = node.InnerHtml.Replace("*|ADDLINE1|*", defaultaddress != null ? defaultaddress.AddressLine1 : ""); } else if (contactfield == ContactFields.AddressLine2Field) { node.InnerHtml = node.InnerHtml.Replace("*|ADDLINE2|*", defaultaddress != null ? defaultaddress.AddressLine2 : ""); } else if (contactfield == ContactFields.CityField) { node.InnerHtml = node.InnerHtml.Replace("*|CITY|*", defaultaddress != null ? defaultaddress.City : ""); } else if (contactfield == ContactFields.StateField) { node.InnerHtml = node.InnerHtml.Replace("*|STATE|*", defaultaddress != null ? defaultaddress.State.Name : ""); } else if (contactfield == ContactFields.ZipCodeField) { node.InnerHtml = node.InnerHtml.Replace("*|ZIPCODE|*", defaultaddress != null ? defaultaddress.ZipCode : ""); } else if (contactfield == ContactFields.CountryField) { node.InnerHtml = node.InnerHtml.Replace("*|COUNTRY|*", defaultaddress != null ? defaultaddress.Country.Name : ""); } #endregion } else if (nodetype == "customfield") { var contactcustomfiled = contact.CustomFields.Where(i => i.CustomFieldId.ToString() == node.Id && i.ContactId == contact.Id) .FirstOrDefault(); string replacablecode = string.Empty; if (contactcustomfiled != null && !string.IsNullOrEmpty(contactcustomfiled.Value) && customFieldValueOptions.Where(i => i.FieldId.ToString() == node.Id).Any()) { IEnumerable <int> SelectedValues = StringToIntList(contactcustomfiled.Value); var customfieldoptions = customFieldValueOptions.Where(i => i.FieldId.ToString() == node.Id && SelectedValues.Contains(i.Id)).Select(x => x.Value); replacablecode = string.Join(",", customfieldoptions); } else if (contactcustomfiled != null && !string.IsNullOrEmpty(contactcustomfiled.Value)) { replacablecode = contactcustomfiled.Value; } node.InnerHtml = node.InnerHtml.Replace("*|" + node.Id + "CF|*", replacablecode); } else if (nodetype == "dropdownfield") { var phonefield = contact.Phones.Where(i => i.PhoneType.ToString() == node.Id && i.ContactID == contact.Id).FirstOrDefault(); string replacablecode = string.Empty; if (phonefield != null && !string.IsNullOrEmpty(phonefield.Number)) { replacablecode = phonefield.Number; } node.InnerHtml = node.InnerHtml.Replace("*|" + node.Id + "DF|*", replacablecode); } } string outerhtml = doc.DocumentNode.OuterHtml; return(outerhtml); } catch (Exception ex) { Logger.Current.Informational(ex.ToString()); return(HtmlContent); } }
/// <summary> /// Initializes a new instance of the <see cref="CMS.DocumentEngine.Types.Contact" /> class. /// </summary> public Contact() : base(CLASS_NAME) { mFields = new ContactFields(this); }