/// <summary>
        /// Create new bank account
        /// </summary>
        /// <param name="bankAccount">bank account entity</param>
        /// <returns>identity result</returns>
        public async Task Create(Models.BankAccount bankAccount)
        {
            try
            {
                var account = await _bankAccountDataRepository.FirstOrDefaultAsync(x => x.UserName == bankAccount.UserName);

                if (account == null)
                {
                    var result = await _bankAccountDataRepository.AddAsync(bankAccount);

                    await _bankAccountDataRepository.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                _logger.LogTrace(ex.StackTrace);
                throw ex;
            }
        }
 /// <summary>
 /// Checks whether bank account exists in database or not
 /// </summary>
 /// <param name="bankAccount"></param>
 /// <returns></returns>
 public bool IsBankAccountExists(Models.BankAccount bankAccount)
 {
     return(_bankAccountDataRepository.Contains(x => x.UserName == bankAccount.UserName));
 }
        /// <summary>
        /// Update account balance information
        /// </summary>
        /// <param name="bankAccount">bank account entity</param>
        /// <returns></returns>
        public async Task Update(Models.BankAccount bankAccount)
        {
            await Task.Run(() => _bankAccountDataRepository.Update(bankAccount));

            await _bankAccountDataRepository.SaveChangesAsync();
        }