public async Task AddUserToCommitteeAsyn(CommitteeUserAssignModel committeeUserModel, string agencyCode) { Check.ArgumentNotNull(nameof(committeeUserModel), committeeUserModel); var user = await _iDMAppService.FindUserProfileByUserNameAsync(committeeUserModel.NationalIdString); List <IDMRolesModel> roles = _iDMAppService.GetIDMRoles(); IDMRolesModel iDMRolesModel = roles.FirstOrDefault(r => r.Name == committeeUserModel.RoleName); committeeUserModel.RoleName = iDMRolesModel.Name; committeeUserModel.RoleNameAr = iDMRolesModel.NormalizedName; Enums.UserRole userType = (Enums.UserRole)Enum.Parse(typeof(Enums.UserRole), committeeUserModel.RoleName, true); if (user == null) { UserProfile userProfile = await _iDMAppService.GetUserProfileByEmployeeId(committeeUserModel.NationalIdString, agencyCode, userType); await _committeeDomainService.CheckUserExist(userProfile.Id, committeeUserModel.CommitteeId.Value); Check.ArgumentNotNull(nameof(userProfile), userProfile); await _genericCommandRepository.CreateAsync(userProfile); committeeUserModel.UserId = userProfile.Id; } else { if (!user.NotificationSetting.Any(x => x.UserRoleId == (int)userType)) { await _committeeDomainService.CheckUserExist(user.Id, committeeUserModel.CommitteeId.Value); user.AddNotificationSettings(await _notificationAppService.GetDefaultSettingByUserType(userType)); _genericCommandRepository.Update(user); } committeeUserModel.UserId = user.Id; } CommitteeUser committeeUser = new CommitteeUser(committeeUserModel.CommitteeId.Value, committeeUserModel.UserId.Value, (int)((Enums.UserRole)Enum.Parse(typeof(Enums.UserRole), committeeUserModel.RoleName)), committeeUserModel.RelatedAgencyCode); await _genericCommandRepository.CreateAsync(committeeUser); await _genericCommandRepository.SaveAsync(); if (user == null) { if (!string.IsNullOrEmpty(committeeUser.UserProfile.Email) || !string.IsNullOrEmpty(committeeUser.UserProfile.Mobile)) { await _notificationAppService.SendNotificationByEmailAndSmsForRolesChanged(committeeUser.UserProfile.Id, committeeUser.UserProfile.Email, committeeUser.UserProfile.Mobile); } } else { if (!string.IsNullOrEmpty(user.Email) || !string.IsNullOrEmpty(user.Mobile)) { await _notificationAppService.SendNotificationByEmailAndSmsForRolesChanged(user.Id, user.Email, user.Mobile); } } }
public async Task AddUserAsyn(BranchUserModel branchUserModel, string agencyCode) { Check.ArgumentNotNull(nameof(branchUserModel), branchUserModel); var user = await _iDMAppService.FindUserProfileByUserNameAsync(branchUserModel.UserName); if (user != null) { _branchServiceDomain.AssignBranchUserExist(branchUserModel.BranchId, branchUserModel.RoleName, user); } List <IDMRolesModel> roles = _iDMAppService.GetIDMRoles(); IDMRolesModel iDMRolesModel = roles.FirstOrDefault(r => r.Name == branchUserModel.RoleName); branchUserModel.RoleName = iDMRolesModel.Name; branchUserModel.RoleArName = iDMRolesModel.NormalizedName; Enums.UserRole userType = (Enums.UserRole)Enum.Parse(typeof(Enums.UserRole), branchUserModel.RoleName, true); UserProfile userProfile = new UserProfile(); if (user == null) { userProfile = await _iDMAppService.GetUserProfileByEmployeeId(branchUserModel.UserName, agencyCode, userType); Check.ArgumentNotNull(nameof(userProfile), userProfile); await _genericCommandRepository.CreateAsync(userProfile); branchUserModel.UserId = userProfile.Id; } else { var defaultSettingsForUserType = await _notificationAppService.GetDefaultSettingByUserType(userType); if (user.NotificationSetting.Count(x => x.UserRoleId == (int)userType) < defaultSettingsForUserType.Count) { await _branchServiceDomain.CheckUserExist(user.Id, branchUserModel.BranchId, branchUserModel.RoleName); user.AddNotificationSettings(defaultSettingsForUserType); _genericCommandRepository.Update(user); } branchUserModel.UserId = user.Id; } var branchUser = new BranchUser(branchUserModel.BranchId, branchUserModel.UserId, (int)((Enums.UserRole)Enum.Parse(typeof(Enums.UserRole), branchUserModel.RoleName)), branchUserModel.RelatedAgencyCode, branchUserModel.EstimatedValueFrom, branchUserModel.EstimatedValueTo); await _genericCommandRepository.CreateAsync(branchUser); await _genericCommandRepository.SaveAsync(); if (user != null) { if (!string.IsNullOrEmpty(user.Email) || !string.IsNullOrEmpty(user.Mobile)) { await _notificationAppService.SendNotificationByEmailAndSmsForRolesChanged(user.Id, user.Email, user.Mobile); } } else { if (!string.IsNullOrEmpty(userProfile.Email) || !string.IsNullOrEmpty(userProfile.Mobile)) { await _notificationAppService.SendNotificationByEmailAndSmsForRolesChanged(userProfile.Id, userProfile.Email, userProfile.Mobile); } } }
private async Task <IDMRolesModel> GetIDMRoleNameById(int roleId) { List <IDMRolesModel> roles = _iDMAppService.GetIDMRoles(); return(roles.Where(r => r.Id == roleId).FirstOrDefault()); }