public HttpResponseMessage CompleteCashDrop([FromBody] CashDropModel cashDrop)
        {
            var dateStart = DateTime.Now;

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

            if (GetUserCode(out userCode, out httpResponseMessage))
            {
                return(httpResponseMessage);
            }
            if (cashDrop == null)
            {
                return(Request.CreateResponse(
                           HttpStatusCode.BadRequest,
                           new ErrorResponse
                {
                    Error = new MessageStyle {
                        Message = "Request is Invalid", MessageType = 0
                    }
                }));
            }
            ErrorMessage error;
            var          tenders = cashDrop.Tenders.Select(tender => new Tender
            {
                Tender_Code    = tender.TenderCode,
                Amount_Entered = tender.AmountEntered
            }).ToList();
            int copies;
            var fs = _cashManager.CompleteCashDrop(tenders, cashDrop.TillNumber, userCode,
                                                   cashDrop.RegisterNumber, cashDrop.DropReason, cashDrop.EnvelopeNumber, out copies, out error);

            if (!string.IsNullOrEmpty(error.MessageStyle.Message))
            {
                _performancelog.Debug(
                    $"End,CashController,CompleteCashDrop,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              new ErrorResponse
                {
                    Error = error.MessageStyle,
                }));
            }
            try
            {
                var content = Helper.CreateBytes(fs);

                var cashDrawReceipt = new ReportModel
                {
                    ReportName    = Constants.CashDropFile,
                    ReportContent = content,
                    Copies        = copies
                };

                _performancelog.Debug(
                    $"End,CashController,CompleteCashDrop,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(Request.CreateResponse(HttpStatusCode.OK, cashDrawReceipt));
            }
            catch
            {
                _performancelog.Debug(
                    $"End,CashController,CompleteCashDrop,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

                return(Request.CreateResponse(HttpStatusCode.NotFound, new ErrorResponse
                {
                    Error = new MessageStyle {
                        Message = Resource.Error, MessageType = 0
                    }
                }));
            }
        }