public int GetCustomerRatingData(string accountNumber)
        {
            try
            {
                var result = MemoryCache.Get("CustomerRating_" + accountNumber);
                if (result != null)
                {
                    return((int)result);
                }

                var customerRatingRequest = new CustomerRatingRequest {
                    AccountNumber = accountNumber
                };
                var policy = Policy.Handle <TimeoutException>().Retry(2);

                var customerRating = policy.Execute(() => _productQuery.GetCustomerRating(customerRatingRequest));

                MemoryCache.Add("CustomerRating_" + accountNumber, customerRating,
                                new CacheItemPolicy {
                    AbsoluteExpiration = new DateTimeOffset(DateTime.UtcNow.AddMinutes(60))
                });

                return(customerRating);
            }
            catch (TimeoutException ex)
            {
                Logger.Error(ex);
                return(0);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                return(0);
            }
        }