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