public async Task <TCompany> GetAsync <TCompany>(ICompanySelector selector) where TCompany : Company, new() { if (selector == null) { throw new ArgumentNullException(nameof(selector)); } var properties = _typeManager.GetCustomProperties <TCompany>(TypeManager.AllProperties).Select(p => new Property(p.FieldName)).ToArray(); try { var hubspot = await selector.GetCompany(_client, properties).ConfigureAwait(false); var company = _typeManager.ConvertTo <TCompany>(hubspot); return(company); } catch (NotFoundException) { return(null); } }
public static Task <Company> GetAsync(this IHubSpotCompanyConnector connector, ICompanySelector selector) => connector.GetAsync <Company>(selector);