/// <summary>
        /// Return a single sold listing
        /// </summary>
        /// <param name="moxiWorksListingId">
        /// This is the Moxi Works Platform ID of the SoldListing which you are requesting to Show.
        /// This data is required and must reference a valid Moxi Works Sold Listing ID for your Show request to be accepted.
        /// </param>
        /// <param name="moxiWorksCompanyId">
        /// A valid Moxi Works Company ID. Use Company Endpoint to determine what moxi_works_company_id you can use.
        /// </param>
        /// <returns>SoldListing or a empty SoldListing</returns>
        public async Task <Response <SoldListing> > GetSoldListingAsync(string moxiWorksListngId, string moxiWorksCompanyId)
        {
            var builder = new UriBuilder($"sold_listings/{moxiWorksListngId}")
                          .AddQueryParameter("moxi_works_company_id", moxiWorksCompanyId);

            return(await Client.GetRequestAsync <SoldListing>(builder.GetUrl()));
        }
        /// <summary>
        /// Returns the specified Task if it exist.
        /// </summary>
        /// <param name="agentId">
        /// Must include either:
        /// AgentUuid
        /// This is the Moxi Works Platform ID of the agent which an Group entry is associated
        /// with. This will be an RFC 4122 compliant UUID.
        /// agent_uuid or moxi_works_agent_id is required and must reference a
        /// valid Moxi Works Agent ID for your Group request to be accepted.
        ///
        /// MoxiWorksAgentId
        /// This is the Moxi Works Platform ID of the agent which an Group entry is associated
        /// with. This will be a string that may take the form of an email address,
        /// or a unique identification string. agent_uuid or moxi_works_agent_id is required
        /// and must reference a valid Moxi Works Agent ID for your Group request to be accepted.
        /// Agent ID for your Group request to be accepted.
        /// </param>
        /// <param name="agentIdType">What agentId type you are using.</param>
        /// <param name="partnerContactId">
        /// This is the unique identifer you use in your system that has been associated with the Contact that this Task regards.
        /// </param>
        /// <param name="partnerTaskId"></param>
        /// <returns>Task Response empty if task does not exist</returns>
        public async Task <Response <Task> > GetTaskAsync(string agentId, AgentIdType agentIdType, string partnerContactId,
                                                          string partnerTaskId)
        {
            var builder = new UriBuilder($"task/{partnerTaskId}")
                          .AddQueryPerameterAgentId(agentId, agentIdType)
                          .AddQueryParameter("partner_contact_id", partnerContactId);

            return(await Client.GetRequestAsync <Task>(builder.GetUrl()));
        }