public void Order_Ack_Decline(int OrderId, int StatusId, string DeclineRemark, string ShippingMethod, DateTime TissueBankSendByDate, int LastModifiedBy, int TransactionId, string AuthCode, string ResponseBody, string AuthTransactionId, int TransactionStatusId, int TissueBankId, out TransactionalInformation transaction)
        {
            transaction = new TransactionalInformation();
            OrderBusinessRule orderBusinessRule = new OrderBusinessRule(orderDataService);

            try
            {
                orderDataService.CreateSession();

                orderBusinessRule.ValidateOrder_Ack_Decline(OrderId, StatusId, DeclineRemark, ShippingMethod, TissueBankSendByDate, LastModifiedBy);

                if (orderBusinessRule.ValidationStatus == true)
                {
                    orderDataService.Order_Ack_Decline(OrderId, StatusId, DeclineRemark, ShippingMethod, TissueBankSendByDate, LastModifiedBy, TransactionId, AuthCode, ResponseBody, AuthTransactionId, TransactionStatusId, TissueBankId, out transaction);
                }
                else
                {
                    transaction.ReturnStatus     = orderBusinessRule.ValidationStatus;
                    transaction.ReturnMessage    = orderBusinessRule.ValidationMessage;
                    transaction.ValidationErrors = orderBusinessRule.ValidationErrors;
                }
            }
            catch (Exception ex)
            {
                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
            }
            finally
            {
                orderDataService.CloseSession();
            }
        }