public HttpResponseMessage RefreshPolicies(int tillNumber, int saleNumber)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,PolicyController,RefreshPolicies,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            var accessToken = Request.GetFirstHeaderValueOrDefault <string>("authToken");

            if (accessToken == null)
            {
                return(Request.CreateResponse(
                           HttpStatusCode.BadRequest,
                           new ErrorResponse
                {
                    Error = new MessageStyle
                    {
                        Message = Resource.Error,
                        MessageType = MessageType.OkOnly
                    }
                }));
            }

            var userCode = TokenValidator.GetUserCode(accessToken);
            var policies = _policyManager.RefreshPolicies(userCode);

            if (policies == null)
            {
                return(Request.CreateResponse(
                           HttpStatusCode.Unauthorized,
                           new ErrorResponse
                {
                    Error = new MessageStyle
                    {
                        Message = Resource.Error,
                        MessageType = MessageType.OkOnly
                    }
                }));
            }
            var error = new ErrorMessage();
            var sale  = CacheManager.GetCurrentSaleForTill(tillNumber, saleNumber);

            if (string.IsNullOrEmpty(error.MessageStyle.Message) && sale != null)
            {
                policies.EnableExactChange = _saleManager.EnableCashButton(sale, userCode);
            }
            var allPolicies = (object)policies;

            _performancelog.Debug($"End,PolicyController,RefreshPolicies,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(Request.CreateResponse(HttpStatusCode.OK, allPolicies));
        }