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)); }