public async Task <dynamic> Get(string companyName) { if (CheckClientSecret()) { try { using (HttpClient client = new HttpClient()) using (Entities db = new Entities()) { CompanyRoot.Company company = await CompanySearch.GetCompany(client, companyName, db); ContactRoot.Contact contact = await ContactSearch.GetContacts(client, company.Results.FirstOrDefault()); return(ContactSearch.CreateContactDTOs(contact)); } } catch (Exception ex) { return(ex); } } else { return(new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)); } }
public static async Task <dynamic> GetContacts(HttpClient client, CompanyRoot.Result company) { List <Filter> filters = new List <Filter>(); Filter nameFilter = new Filter("associatedcompanyid", "EQ", company.Id); filters.Add(nameFilter); string[] searchProps = new string[] { "firstname", "lastname", "email", "phone" }; RequestBody search = new RequestBody(filters, searchProps.ToList()); string searchJson = JsonConvert.SerializeObject(search); StringContent searchData = new StringContent(searchJson, Encoding.UTF8, "application/json"); string uri = $"{ConfigDictionary.Config()["HubSpotAPIURLRoot"]}/contacts/search?hapikey={ConfigDictionary.Config()["HubSpotAPIKey"]}"; try { HttpResponseMessage response = await client.PostAsync(uri, searchData); string responseData = await response.Content.ReadAsStringAsync(); ContactRoot.Contact contactsData = JsonConvert.DeserializeObject <ContactRoot.Contact>(responseData); return(contactsData); } catch (HttpRequestException ex) { return(ex); } }
public static List <ContactDTO> CreateContactDTOs(ContactRoot.Contact contact) { List <ContactDTO> contactDTOs = new List <ContactDTO>(); for (int i = 0; i < contact.Results.Count; i++) { contactDTOs.Add(new ContactDTO($"{contact.Results[i].Properties.Firstname} {contact.Results[i].Properties.Lastname}", contact.Results[i].Properties.Email, contact.Results[i].Properties.Phone)); } return(contactDTOs); }