public int Transaction_Create(DateTime TransactionInitiateDate, float Amount, int UserId, string RequestBody, out TransactionalInformation transaction)
        {
            transaction = new TransactionalInformation();
            TransactionBusinessRule transactionBusinessRule = new TransactionBusinessRule(transactionDataService);
            int TransactionId = 0;

            try
            {
                transactionDataService.CreateSession();

                transactionBusinessRule.ValidateTransaction_Create(TransactionInitiateDate, Amount, UserId, RequestBody);

                if (transactionBusinessRule.ValidationStatus == true)
                {
                    //send this password on mail
                    string Password = Utility.Utilities.RandomAlphaNumeric(6);

                    TransactionId = transactionDataService.Transaction_Create(TransactionInitiateDate, Amount, UserId, RequestBody, out transaction);
                }
                else
                {
                    transaction.ReturnStatus     = transactionBusinessRule.ValidationStatus;
                    transaction.ReturnMessage    = transactionBusinessRule.ValidationMessage;
                    transaction.ValidationErrors = transactionBusinessRule.ValidationErrors;
                }
            }
            catch (Exception ex)
            {
                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
            }
            finally
            {
                transactionDataService.CloseSession();
            }
            return(TransactionId);
        }