From 7ba48b2f117d888847cc0e735e10f898cd9dafc6 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 25 Nov 2025 05:39:39 +0330 Subject: [PATCH] update3 --- .../GetAllUserWalletByFilterQueryHandler.cs | 46 +++++++++++++++---- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/src/CMSMicroservice.Application/UserWalletCQ/Queries/GetAllUserWalletByFilter/GetAllUserWalletByFilterQueryHandler.cs b/src/CMSMicroservice.Application/UserWalletCQ/Queries/GetAllUserWalletByFilter/GetAllUserWalletByFilterQueryHandler.cs index bd721a1..4c81f3f 100644 --- a/src/CMSMicroservice.Application/UserWalletCQ/Queries/GetAllUserWalletByFilter/GetAllUserWalletByFilterQueryHandler.cs +++ b/src/CMSMicroservice.Application/UserWalletCQ/Queries/GetAllUserWalletByFilter/GetAllUserWalletByFilterQueryHandler.cs @@ -1,5 +1,8 @@ namespace CMSMicroservice.Application.UserWalletCQ.Queries.GetAllUserWalletByFilter; -public class GetAllUserWalletByFilterQueryHandler : IRequestHandler + +public class + GetAllUserWalletByFilterQueryHandler : IRequestHandler { private readonly IApplicationDbContext _context; @@ -8,8 +11,34 @@ public class GetAllUserWalletByFilterQueryHandler : IRequestHandler Handle(GetAllUserWalletByFilterQuery request, CancellationToken cancellationToken) + public async Task Handle(GetAllUserWalletByFilterQuery request, + CancellationToken cancellationToken) { + #region Remove This Region After Implementing Migration + + // This Region Is For Adding UserWallet For Existing Users In Database + var usersWithNoWallet = _context.Users + .Where(u => !_context.UserWallets.Any(uw => uw.UserId == u.Id)) + .Select(u => u.Id) + .ToList(); + foreach (var userId in usersWithNoWallet) + { + await _context.UserWallets.AddAsync(new UserWallet() + { + UserId = userId, + Balance = 0, + NetworkBalance = 0 + }, cancellationToken); + } + + if (usersWithNoWallet.Any()) + { + await _context.SaveChangesAsync(cancellationToken); + } + + #endregion + + var query = _context.UserWallets .ApplyOrder(sortBy: request.SortBy) .AsNoTracking() @@ -17,16 +46,17 @@ public class GetAllUserWalletByFilterQueryHandler : IRequestHandler request.Filter.Id == null || x.Id == request.Filter.Id) - .Where(x => request.Filter.UserId == null || x.UserId == request.Filter.UserId) - .Where(x => request.Filter.Balance == null || x.Balance == request.Filter.Balance) -; + .Where(x => request.Filter.Id == null || x.Id == request.Filter.Id) + .Where(x => request.Filter.UserId == null || x.UserId == request.Filter.UserId) + .Where(x => request.Filter.Balance == null || x.Balance == request.Filter.Balance) + ; } + return new GetAllUserWalletByFilterResponseDto { MetaData = await query.GetMetaData(request.PaginationState, cancellationToken), Models = await query.PaginatedListAsync(paginationState: request.PaginationState) .ProjectToType().ToListAsync(cancellationToken) - }; + }; } -} +} \ No newline at end of file