private static HttpClient GetHttpClient()
        {
            var customHeaders = GetDefaultHeadersForHttpClient();
            var httpClient    = HttpClientFactory.GetClient(customHeaders);

            return(httpClient);
        }
        private static HttpResponseMessage HttpResponseMessage(PlatformLoyaltyServiceRequestType requestType,
                                                               PlatformLoyaltyServiceRequest request, string method)
        {
            UriBuilder    uri;
            StringContent content = null;

            switch (requestType)
            {
            case PlatformLoyaltyServiceRequestType.AllLoyalties:
                uri = CreateUrl.GetUrl(requestType);
                break;

            case PlatformLoyaltyServiceRequestType.GetLoyaltyById:
                uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id);
                break;

            case PlatformLoyaltyServiceRequestType.CreateLoyalty:
                uri     = CreateUrl.GetUrl(requestType);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Loyalty);
                break;

            case PlatformLoyaltyServiceRequestType.UpdateLoyaltyById:
                uri     = CreateUrl.GetUrl(requestType, request.Loyalty.Id);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Loyalty);
                break;

            case PlatformLoyaltyServiceRequestType.AllTiers:
                uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id);
                break;

            case PlatformLoyaltyServiceRequestType.GetTierById:
                uri = CreateUrl.GetUrl(requestType, request.Tier.ProgramId, request.Tier.Id);
                break;

            case PlatformLoyaltyServiceRequestType.CreateTier:
                uri     = CreateUrl.GetUrl(requestType, request.Tier.ProgramId);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Tier);
                break;

            case PlatformLoyaltyServiceRequestType.UpdateTierById:
                uri     = CreateUrl.GetUrl(requestType, request.Tier.ProgramId, request.Tier.Id);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Tier);
                break;

            case PlatformLoyaltyServiceRequestType.AllRewards:
                uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id);
                break;

            case PlatformLoyaltyServiceRequestType.GetRewardById:
                uri = CreateUrl.GetUrl(requestType, request.Reward.ProgramId, request.Reward.Id);
                break;

            case PlatformLoyaltyServiceRequestType.CreateReward:
                uri     = CreateUrl.GetUrl(requestType, request.Reward.ProgramId);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Reward);
                break;

            case PlatformLoyaltyServiceRequestType.UpdateRewardById:
                uri     = CreateUrl.GetUrl(requestType, request.Reward.ProgramId, request.Reward.Id);
                content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Reward);
                break;

            case PlatformLoyaltyServiceRequestType.AllUsers:
                uri = CreateUrl.GetUrl(requestType);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(requestType), requestType, null);
            }

            var responseMessage = HttpClientFactory.PerformRequest(method, uri, content, GetHttpClient());

            return(responseMessage);
        }