Skip to content

Commit 74ffef7

Browse files
committed
Fix couple user preferences aspects
1 parent 24117d3 commit 74ffef7

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

src/Core/DependencyInjection.cs

+1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ public static void AddGatewayCore(this IServiceCollection services, IConfigurati
1111
{
1212
services.AddScoped<ITemplatesService, TemplatesService>();
1313
services.AddScoped<INotificationsService, NotificationService>();
14+
services.AddScoped<IUserPreferencesService, UserPreferencesService>();
1415
}
1516
}

src/Core/Mappers/UserPreferencesMapper.cs

+18-21
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Core.Mappers;
66

7-
public class UserPreferencesMapper
7+
public static class UserPreferencesMapper
88
{
99
internal static UserPreferencesDto ToDto(UserPreferences e)
1010
{
@@ -17,44 +17,41 @@ internal static UserPreferencesDto ToDto(UserPreferences e)
1717
Enabled = d.Value.Enabled,
1818
Description = d.Value.Description,
1919
Metadata = d.Value.Metadata
20-
}) ?? []
20+
})
2121
};
2222
}
2323

2424
public static UserPreferences UpdateEntity(UserPreferences e, UserPreferencesDto dto)
2525
{
2626
var channels = e.Channels;
27-
if (channels.Count > 0)
27+
foreach (var ch in dto.Channels)
2828
{
29-
foreach (var ch in dto.Channels)
29+
if (channels.TryGetValue(ch.Key, out var channel))
3030
{
31-
if (channels.TryGetValue(ch.Key, out var channel))
32-
{
33-
channel.Enabled = ch.Value.Enabled;
34-
channel.Description = ch.Value.Description;
35-
channel.Metadata = ch.Value.Metadata;
36-
}
37-
else
31+
channel.Enabled = ch.Value.Enabled;
32+
channel.Description = ch.Value.Description;
33+
channel.Metadata = ch.Value.Metadata;
34+
}
35+
else
36+
{
37+
channels.Add(ch.Key, new ChannelDescriptorBase
3838
{
39-
channels.Add(ch.Key, new ChannelDescriptorBase
40-
{
41-
Enabled = ch.Value.Enabled,
42-
Description = ch.Value.Description,
43-
Metadata = ch.Value.Metadata
44-
});
45-
}
39+
Enabled = ch.Value.Enabled,
40+
Description = ch.Value.Description,
41+
Metadata = ch.Value.Metadata
42+
});
4643
}
4744
}
48-
45+
4946
return e with { LastUpdated = DateTimeOffset.UtcNow, Channels = channels };
5047
}
51-
48+
5249
public static UserPreferences ToEntity(UserPreferencesDto dto)
5350
{
5451
var id = string.IsNullOrEmpty(dto.Id)
5552
? ObjectId.GenerateNewId()
5653
: ObjectId.Parse(dto.Id);
57-
54+
5855
return new UserPreferences
5956
{
6057
Id = id,

src/Core/Services/UserPreferencesService.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Core.Services;
1313

1414
public class UserPreferencesService(
1515
IUserAnalyticsClient userAnalyticsClient,
16-
IMongoRepository<UserPreferences> userPreferencesRepository,
16+
IUserPreferencesRepository userPreferencesRepository,
1717
ILogger<UserPreferencesService> logger) : IUserPreferencesService
1818
{
1919
private readonly IUserAnalyticsClient _userAnalyticsClient = userAnalyticsClient;
@@ -64,7 +64,7 @@ public async Task<ErrorOr<UserPreferencesDto>> UpdateUserPreferences(
6464

6565
// here user mail should be sent
6666
await _userAnalyticsClient.SendUserAction(
67-
userPreferences.UserId, "UserPreferencesCreated", "recipient", "User's Preferences", ct);
67+
userPreferences.UserId, "UserPreferencesUpdated", "recipient", "User's Preferences", ct);
6868

6969
return UserPreferencesMapper.ToDto(entity);
7070
}

0 commit comments

Comments
 (0)