3
3
using Core . Mappers ;
4
4
using Core . Models . UserPreferences ;
5
5
using ErrorOr ;
6
+ using Infrastructure . Persistence . MassTransit . Analytics ;
6
7
using Infrastructure . Persistence . Mongo . Abstractions ;
7
8
using Infrastructure . Persistence . Mongo . Entities . Preferences ;
8
9
using Infrastructure . Persistence . Mongo . Specifications ;
11
12
namespace Core . Services ;
12
13
13
14
public class UserPreferencesService (
15
+ IUserAnalyticsClient userAnalyticsClient ,
14
16
IMongoRepository < UserPreferences > userPreferencesRepository ,
15
17
ILogger < UserPreferencesService > logger ) : IUserPreferencesService
16
18
{
19
+ private readonly IUserAnalyticsClient _userAnalyticsClient = userAnalyticsClient ;
17
20
private readonly IMongoRepository < UserPreferences > _userPreferencesRepository = userPreferencesRepository ;
18
21
private readonly ILogger < UserPreferencesService > _logger = logger ;
19
22
@@ -30,6 +33,10 @@ public async Task<ErrorOr<UserPreferencesDto>> CreateUserPreferences(string user
30
33
var entity = UserPreferencesMapper . ToEntity ( defaultPreferences ) ;
31
34
await _userPreferencesRepository . InsertOne ( entity ) ;
32
35
36
+ // here user mail should be sent
37
+ await _userAnalyticsClient . SendUserAction (
38
+ userId , "UserPreferencesCreated" , "recipient" , "User's Preferences" , ct ) ;
39
+
33
40
return UserPreferencesMapper . ToDto ( entity ) ;
34
41
}
35
42
catch ( Exception ex )
@@ -54,7 +61,11 @@ public async Task<ErrorOr<UserPreferencesDto>> UpdateUserPreferences(
54
61
55
62
var entity = UserPreferencesMapper . UpdateEntity ( currentPreferences , userPreferences ) ;
56
63
await _userPreferencesRepository . Replace ( entity ) ;
57
-
64
+
65
+ // here user mail should be sent
66
+ await _userAnalyticsClient . SendUserAction (
67
+ userPreferences . UserId , "UserPreferencesCreated" , "recipient" , "User's Preferences" , ct ) ;
68
+
58
69
return UserPreferencesMapper . ToDto ( entity ) ;
59
70
}
60
71
catch ( Exception ex )
0 commit comments