@@ -7,33 +7,41 @@ namespace Logistics.Application.Admin.Commands;
7
7
8
8
internal sealed class UpdateUserHandler : RequestHandler < UpdateUserCommand , ResponseResult >
9
9
{
10
- private readonly IMasterRepository _masterRepository ;
11
- private readonly ITenantRepository _tenantRepository ;
10
+ private readonly IMasterUnityOfWork _masterUow ;
11
+ private readonly ITenantUnityOfWork _tenantUow ;
12
12
13
13
public UpdateUserHandler (
14
- IMasterRepository masterRepository ,
15
- ITenantRepository tenantRepository )
14
+ IMasterUnityOfWork masterUow ,
15
+ ITenantUnityOfWork tenantUow )
16
16
{
17
- _masterRepository = masterRepository ;
18
- _tenantRepository = tenantRepository ;
17
+ _masterUow = masterUow ;
18
+ _tenantUow = tenantUow ;
19
19
}
20
20
21
21
protected override async Task < ResponseResult > HandleValidated (
22
22
UpdateUserCommand req , CancellationToken cancellationToken )
23
23
{
24
- var user = await _masterRepository . GetAsync < User > ( req . Id ) ;
24
+ var user = await _masterUow . Repository < User > ( ) . GetByIdAsync ( req . Id ) ;
25
25
26
- if ( user == null )
26
+ if ( user is null )
27
+ {
27
28
return ResponseResult . CreateError ( "Could not find the specified user" ) ;
29
+ }
28
30
29
31
if ( ! string . IsNullOrEmpty ( req . FirstName ) )
32
+ {
30
33
user . FirstName = req . FirstName ;
34
+ }
31
35
32
36
if ( ! string . IsNullOrEmpty ( req . LastName ) )
37
+ {
33
38
user . LastName = req . LastName ;
39
+ }
34
40
35
41
if ( ! string . IsNullOrEmpty ( req . PhoneNumber ) )
42
+ {
36
43
user . PhoneNumber = req . PhoneNumber ;
44
+ }
37
45
38
46
var tenantIds = user . GetJoinedTenantIds ( ) ;
39
47
@@ -42,24 +50,26 @@ protected override async Task<ResponseResult> HandleValidated(
42
50
await UpdateTenantEmployeeDataAsync ( tenantId , user ) ;
43
51
}
44
52
45
- _masterRepository . Update ( user ) ;
46
- await _masterRepository . UnitOfWork . CommitAsync ( ) ;
53
+ _masterUow . Repository < User > ( ) . Update ( user ) ;
54
+ await _masterUow . SaveChangesAsync ( ) ;
55
+ await _tenantUow . SaveChangesAsync ( ) ;
47
56
return ResponseResult . CreateSuccess ( ) ;
48
57
}
49
58
50
59
private async Task UpdateTenantEmployeeDataAsync ( string tenantId , User user )
51
60
{
52
- _tenantRepository . SetCurrentTenantById ( tenantId ) ;
53
- var employee = await _tenantRepository . GetAsync < Employee > ( user . Id ) ;
61
+ _tenantUow . SetCurrentTenantById ( tenantId ) ;
62
+ var employee = await _tenantUow . Repository < Employee > ( ) . GetByIdAsync ( user . Id ) ;
54
63
55
64
if ( employee is null )
65
+ {
56
66
return ;
67
+ }
57
68
58
69
employee . FirstName = user . FirstName ;
59
70
employee . LastName = user . LastName ;
60
71
employee . Email = user . Email ;
61
72
employee . PhoneNumber = user . PhoneNumber ;
62
- _tenantRepository . Update ( employee ) ;
63
- await _tenantRepository . UnitOfWork . CommitAsync ( ) ;
73
+ _tenantUow . Repository < Employee > ( ) . Update ( employee ) ;
64
74
}
65
75
}
0 commit comments