public async Task <Wallet> Delete(Wallet wallet) { if (!await WalletValidator.Delete(wallet)) { return(wallet); } using (UnitOfWork.Begin()) { try { WalletFilter walletFilter = new WalletFilter { UserId = new GuidFilter { Equal = wallet.UserId }, Name = new StringFilter { Equal = wallet.Name } }; Wallet walletToDelete = await UnitOfWork.WalletRepository.Get(walletFilter); await UnitOfWork.WalletRepository.Delete(walletToDelete.Id); await UnitOfWork.Commit(); return(walletToDelete); } catch (Exception ex) { await UnitOfWork.Rollback(); wallet.AddError(nameof(WalletService), nameof(wallet.Id), CommonEnum.ErrorCode.SystemError); return(wallet); } } }