Exemple #1
0
        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);
                }
            }
        }