Example #1
0
        /// <summary>
        /// Gets a list of deals
        /// </summary>
        /// <typeparam name="T">Implementation of DealListHubSpotModel</typeparam>
        /// <param name="opts">Options (limit, offset) relating to request</param>
        /// <returns>List of deals</returns>
        public DealListHubSpotModel <T> List <T>(bool includeAssociations, ListRequestOptions opts = null) where T : DealHubSpotModel, new()
        {
            if (opts == null)
            {
                opts = new ListRequestOptions();
            }

            var path = $"{new DealListHubSpotModel<T>().RouteBasePath}/deal/paged"
                       .SetQueryParam("limit", opts.Limit);

            if (opts.Offset.HasValue)
            {
                path = path.SetQueryParam("offset", opts.Offset);
            }

            if (includeAssociations)
            {
                path = path.SetQueryParam("includeAssociations", "true");
            }

            if (opts.PropertiesToInclude.Any())
            {
                path = path.SetQueryParam("properties", opts.PropertiesToInclude);
            }

            var data = _client.ExecuteList <DealListHubSpotModel <T> >(path, opts);

            return(data);
        }
        /// <summary>
        /// Gets a company by domain name
        /// </summary>
        /// <typeparam name="T">Implementation of CompanyHubSpotModel</typeparam>
        /// <param name="domain">Domain name to search for</param>
        /// <param name="options">Set of search options</param>
        /// <returns>The company entity</returns>
        public CompanySearchResultModel <T> GetByDomain <T>(string domain, CompanySearchByDomain options = null) where T : CompanyHubSpotModel, new()
        {
            if (options == null)
            {
                options = new CompanySearchByDomain();
            }

            var path = $"{new CompanyHubSpotModel().RouteBasePath}/domains/{domain}/companies";

            var data = _client.ExecuteList <CompanySearchResultModel <T> >(path, options, Method.POST);

            return(data);
        }
        /// <summary>
        /// Retrieves a paginated list of engagements
        /// </summary>
        /// <param name="opts">Options for querying</param>
        /// <returns>List of engagements, with additional metadata, e.g. total</returns>
        public EngagementListHubSpotModel <T> List <T>(EngagementListRequestOptions opts = null) where T : EngagementHubSpotModel, new()
        {
            if (opts == null)
            {
                opts = new EngagementListRequestOptions();
            }

            var path = $"{new EngagementHubSpotModel().RouteBasePath}/engagements/paged".SetQueryParam("limit", opts.Limit);

            if (opts.Offset.HasValue)
            {
                path = path.SetQueryParam("offset", opts.Offset);
            }

            var data = _client.ExecuteList <EngagementListHubSpotModel <T> >(path, opts, convertToPropertiesSchema: false);

            return(data);
        }
        /// <summary>
        /// Gets a list of email campaigns.
        /// </summary>
        /// <typeparam name="T">Implementation of EmailCampaignHubSpotModel</typeparam>
        /// <param name="opts">Options (limit, offset) relating to request</param>
        /// <returns>List of email campaigns</returns>
        public EmailCampaignListHubSpotModel <T> ListCampaigns <T>(EmailCampaignListRequestOptions opts = null) where T : EmailCampaignHubSpotModel, new()
        {
            if (opts == null)
            {
                opts = new EmailCampaignListRequestOptions {
                    Limit = 250
                };
            }

            var path = $"{new EmailCampaignListHubSpotModel<T>().RouteBasePath}/by-id"
                       .SetQueryParam("limit", opts.Limit);

            if (!string.IsNullOrEmpty(opts.Offset))
            {
                path = path.SetQueryParam("offset", opts.Offset);
            }

            var data = _client.ExecuteList <EmailCampaignListHubSpotModel <T> >(path, opts, convertToPropertiesSchema: false);

            return(data);
        }
        public FileListHubSpotModel <T> List <T>(ListRequestOptions opts = null) where T : FileHubSpotModel, new()
        {
            opts = opts ?? new ListRequestOptions();
            var path = $"{new T().RouteBasePath}/files".SetQueryParam("limit", opts.Limit);

            if (opts.Offset.HasValue)
            {
                path = path.SetQueryParam("offset", opts.Offset);
            }
            var data = _client.ExecuteList <FileListHubSpotModel <T> >(path, opts, Method.GET, false);

            return(data);
        }
Example #6
0
        /// <summary>
        /// List all available contacts
        /// </summary>
        /// <param name="properties">List of properties to fetch for each contact</param>
        /// <param name="opts">Request options - used for pagination etc.</param>
        /// <typeparam name="T">Implementation of ContactHubSpotModel</typeparam>
        /// <returns>A list of contacts</returns>
        public ContactListHubSpotModel <T> List <T>(ListRequestOptions opts = null) where T : ContactHubSpotModel, new()
        {
            if (opts == null)
            {
                opts = new ListRequestOptions();
            }

            var path = $"{new ContactHubSpotModel().RouteBasePath}/lists/all/contacts/all"
                       .SetQueryParam("count", opts.Limit);

            if (opts.PropertiesToInclude.Any())
            {
                path.SetQueryParam("property", opts.PropertiesToInclude);
            }

            if (opts.Offset.HasValue)
            {
                path = path.SetQueryParam("vidOffset", opts.Offset);
            }

            var data = _client.ExecuteList <ContactListHubSpotModel <T> >(path, opts);

            return(data);
        }
        public PropertiesListHubSpotModel <CompanyPropertyHubSpotModel> GetAll()
        {
            var path = $"{new PropertiesListHubSpotModel<CompanyPropertyHubSpotModel>().RouteBasePath}";

            return(_client.ExecuteList <PropertiesListHubSpotModel <CompanyPropertyHubSpotModel> >(path, convertToPropertiesSchema: false));
        }
        /// <summary>
        /// Gets the available email subscription types available in the portal
        /// </summary>
        public SubscriptionTypeListHubSpotModel GetEmailSubscriptionTypes()
        {
            var path = $"{new SubscriptionTypeListHubSpotModel().RouteBasePath}/subscriptions";

            return(_client.ExecuteList <SubscriptionTypeListHubSpotModel>(path, convertToPropertiesSchema: false));
        }
Example #9
0
        /// <summary>
        /// Gets all owners within your HubSpot account
        /// </summary>
        /// <returns>The set of owners</returns>
        public OwnerListHubSpotModel <T> GetAll <T>() where T : OwnerHubSpotModel, new()
        {
            var path = $"{new OwnerHubSpotModel().RouteBasePath}/owners";

            return(_client.ExecuteList <OwnerListHubSpotModel <T> >(path, convertToPropertiesSchema: false));
        }