Exemple #1
0
        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);
        }