/// <summary>
        /// Refresh the contracts of the sales agents with the oldest refresh time and update contract counts.
        /// </summary>
        /// <param name="force">Indicates that all sales agents should be refreshed, ignoring their LastContractRefresh values.</param>
        /// <param name="batchSize">The number of sales agents to refresh at a time.</param>
        public void RefreshContracts(bool force, int batchSize)
        {
            // Refresh the contracts.
            ContractManager.RefreshContracts(force, batchSize);

            // Refresh the number of valid contracts available for each ship fit.
            ShipFitManager.RefreshShipFitContractCounts();

            // Refresh the number of contracts available for each sales agent.
            SalesAgentManager.RefreshSalesAgentContractCounts();
        }
        /// <summary>
        /// Forces a contract refresh for a single sales agent. This operation is only permitted once every 30 minutes.
        /// </summary>
        /// <param name="accountId">The account Id of the requestor. The account Id should own the sales agent being refreshed.</param>
        /// <param name="salesAgentId">The id of the sales agent for which a contract refresh is to be forced.</param>
        /// <returns>Returns true if the force was successful or false if not.</returns>
        public bool ForceContractRefresh(int accountId, int salesAgentId)
        {
            // Force a contract refresh for this sales agent and store the result.
            var result = ContractManager.ForceContractRefresh(accountId, salesAgentId);

            // Refresh the number of valid contracts available for each ship fit.
            ShipFitManager.RefreshShipFitContractCounts();

            // Refresh the number of contracts available for each sales agent.
            SalesAgentManager.RefreshSalesAgentContractCounts();

            return(result);
        }