-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserService.cs
More file actions
71 lines (64 loc) · 2.42 KB
/
UserService.cs
File metadata and controls
71 lines (64 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
namespace RexStudios.LanguageDependentNotification
{
using Microsoft.Xrm.Sdk;
using RexStudios.Extensions;
using System;
public class UserService : IUserService
{
private IUserSettingsRepo _userSettingsRepo;
private IUserRepo _userRepo;
private ILanguageCodeRepo _languageCodeRepo;
private readonly ITracingService _tracingService;
public UserService(IOrganizationService organizationService, ITracingService tracingService)
{
_tracingService = tracingService;
_userSettingsRepo = new UserSettingsDL(organizationService,tracingService);
_userRepo = new UserDL(organizationService,tracingService);
_languageCodeRepo = new LanguageCodeDL(organizationService,tracingService);
}
public int GetUserLanguageFromUser(Guid userId)
{
return this.GetLangauageEntity(userId);
}
public int GetLangauageEntity(Guid userId)
{
try
{
var userDetail = _userRepo.GetUserDetailsById(userId);
if (userDetail != null)
{
EntityReference languageId = (EntityReference)userDetail.Attributes["rex_languageId"];
if (languageId != null &&
!GuidExtensions.IsNullOrEmpty(languageId.Id))
{
Entity languageCode = _languageCodeRepo.GetLanguageByID(languageId.Id);
if (languageCode != null)
{
return (int)languageCode.Attributes["rex_languagecode"];
}
}
}
else
{
return this.GetUserLanguageFromUserPreferences(userId);
}
}
catch (InvalidPluginExecutionException ex)
{
_tracingService?.Trace($"Invalid Exception GetNotificationTextByEntityName: {ex.Message}");
throw ex;
}
catch (Exception ex)
{
_tracingService?.Trace($"Invalid Exception GetNotificationTextByEntityName: {ex.Message}");
throw ex;
}
return 0;
}
public int GetUserLanguageFromUserPreferences(Guid UserId)
{
return _userSettingsRepo.GetUserLanguageId(UserId);
}
}
}