public HttpResponseMessage PaymentByCoupon([FromBody] PaymentModel paymentModel)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,PaymentController,PaymentByCoupon,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            ErrorMessage        errorMessage;
            string              userCode;
            HttpResponseMessage httpResponseMessage;

            if (GetUserCode(out userCode, out httpResponseMessage))
            {
                return(httpResponseMessage);
            }
            var updatedTenders = _paymentManager.ByCoupon(paymentModel.SaleNumber,
                                                          paymentModel.TillNumber, paymentModel.TransactionType, paymentModel.CouponNumber,
                                                          paymentModel.TillClose, paymentModel.TenderCode, userCode,
                                                          out errorMessage);

            //Added scenario when "Amount Cannot Exceed value of sale."
            //should be displayed and countinue to use the coupon amount
            var store        = CacheManager.GetStoreInfo();
            var offSet       = store?.OffSet ?? 0;
            var messageStyle = _resourceManager.CreateMessage(offSet, 14, 88, null, MessageType.OkOnly);
            var messages     = new List <object>();

            if (messageStyle.Message.Equals(errorMessage.MessageStyle.Message))
            {
                var msg = new
                {
                    error = messageStyle
                };
                messages.Add(msg);
            }
            else
            {
                if (!string.IsNullOrEmpty(errorMessage.MessageStyle.Message))
                {
                    return(Request.CreateResponse(errorMessage.StatusCode, new ErrorResponse
                    {
                        Error = errorMessage.MessageStyle
                    }));
                }
            }
            TenderSummaryModel tenderSummary = GetTenderSummary(updatedTenders);

            tenderSummary.Messages = messages;
            _performancelog.Debug($"End,PaymentController,PaymentByCoupon,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(Request.CreateResponse(HttpStatusCode.OK, tenderSummary));
        }