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

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

            if (GetUserCode(out userCode, out httpResponseMessage))
            {
                return(httpResponseMessage);
            }
            string          fileName = string.Empty;
            Report          receipt  = null;
            ErrorMessage    errorMessage;
            CustomerDisplay lcdMsg;
            var             sale = _paymentManager.ByCashExact(paymentModel.TillNumber,
                                                               paymentModel.SaleNumber,
                                                               userCode, ref receipt, ref fileName,
                                                               out errorMessage, out lcdMsg);


            if (!string.IsNullOrEmpty(errorMessage?.MessageStyle?.Message))
            {
                return(Request.CreateResponse(errorMessage.StatusCode, new ErrorResponse
                {
                    Error = errorMessage.MessageStyle
                }));
            }

            var recieptModel = new ReportModel
            {
                ReportName    = receipt.ReportName,
                ReportContent = receipt.ReportContent,
                Copies        = 1
            };
            var tillLimitExeceeded           = _paymentManager.CheckTillLimit(sale.TillNumber);
            var completePaymentResponseModel = new CompletePaymentResponseModel
            {
                NewSale = new NewSale
                {
                    SaleNumber = sale.Sale_Num,
                    TillNumber = sale.TillNumber,
                    Customer   = sale.Customer.Name
                },
                LimitExceedMessage = tillLimitExeceeded,
                PaymentReceipt     = recieptModel,
                CustomerDisplays   = new List <CustomerDisplay> {
                    lcdMsg, sale.CustomerDisplay
                }
            };

            _performancelog.Debug(
                $"End,PaymentController,PaymentByExactCash,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

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