public async Task <ActionResult> OnPostGroupOwnerDelete([FromBody] GroupOwnerAssignModel groupOwnerAssign) { try { if (groupOwnerAssign != null) { if (groupOwnerAssign.SelectedOwners != null) { if (groupOwnerAssign.SelectedOwners.Any() && !string.IsNullOrEmpty(groupOwnerAssign.GroupId)) { HttpClient httpClient = new HttpClient(); var url = $"{CareStreamConst.Base_Url}{CareStreamConst.Base_API}{CareStreamConst.GroupOwner_Url}"; httpClient.BaseAddress = new Uri(CareStreamConst.Base_Url); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, new Uri(url)); var payload = JsonConvert.SerializeObject(groupOwnerAssign); request.Content = new StringContent(payload, Encoding.UTF8, CareStreamConst.Application_Json); var result = await httpClient.SendAsync(request); if (result.IsSuccessStatusCode) { var data = await result.Content.ReadAsStringAsync(); } } } } } catch (Exception ex) { Console.WriteLine(ex); } return(this.RedirectToAction("OnGetAsync")); }
public async Task <IActionResult> Post([FromBody] GroupOwnerAssignModel groupOwnerAssign) { try { if (groupOwnerAssign == null) { _logger.LogError("GroupOwnersController-Post: Group owner cannot be null..."); return(NotFound()); } _logger.LogInfo("GroupOwnersController-Post: [Started] assigning owner(s) to group in Azure AD B2C"); if (!string.IsNullOrEmpty(groupOwnerAssign.GroupId) && groupOwnerAssign.SelectedOwners.Any()) { var client = GraphClientUtility.GetGraphServiceClient(); if (client == null) { _logger.LogError("GroupOwnersController-Post: Unable to create object for graph client "); return(NotFound()); } // Get all user from Graph var users = await client.Users.Request().GetAsync(); if (users != null) { var assigningUsers = users.Where(x => groupOwnerAssign.SelectedOwners.Contains(x.Id)).ToList(); if (assigningUsers != null) { foreach (var assignUser in assigningUsers) { try { await client.Groups[groupOwnerAssign.GroupId].Owners.References.Request().AddAsync(assignUser); } catch (Exception ex) { _logger.LogError($"GroupOwnersController-Post: unable to assign owner [{assignUser.UserPrincipalName}] to the group [id:{groupOwnerAssign.GroupId}]"); _logger.LogError(ex); } } } } } _logger.LogInfo("GroupOwnersController-Post: [Completed] creation of group in Azure AD B2C"); return(Ok()); } catch (Exception ex) { _logger.LogError("GroupOwnersController-Post: Exception occured...."); _logger.LogError(ex); throw ex; } }
public async Task <IActionResult> Delete([FromBody] GroupOwnerAssignModel val) { try { if (val == null) { _logger.LogError("GroupOwnersController-Delete: Input value cannot be empty"); return(NotFound()); } var groupId = val.GroupId; if (!string.IsNullOrEmpty(groupId)) { GraphServiceClient client = GraphClientUtility.GetGraphServiceClient(); if (client == null) { _logger.LogError("GroupOwnersController-Delete: Unable to create object for graph client"); return(NotFound()); } _logger.LogInfo($"GroupOwnersController-Delete: [Started] unassigning owner(s) for group [Id:{groupId}]"); foreach (var ownerId in val.SelectedOwners) { try { _logger.LogInfo($"GroupOwnersController-Delete: Removing owner [{ownerId}] from group [Id:{groupId}] on Azure AD B2C"); await client.Groups[groupId].Owners[ownerId].Reference.Request().DeleteAsync(); _logger.LogInfo($"GroupOwnersController-Delete: Removed member [{ownerId}] from group [Id:{groupId}] on Azure AD B2C"); } catch (Exception ex) { _logger.LogError($"GroupOwnersController-Delete: Exception occured while unassigning owner [Id:{ownerId}] for group [Id:{groupId}] "); _logger.LogError(ex); } } _logger.LogInfo($"GroupOwnersController-Delete: [Completed] unassigning owner(s) from group [Id:{val.GroupId}]"); } return(Ok()); } catch (Exception ex) { _logger.LogError("GroupOwnersController-Delete: Exception occured...."); _logger.LogError(ex); throw ex; } }
public async Task <IActionResult> OnPostAddOwner(List <string> selectedOwner) { var id = string.Empty; try { id = GetGroupIdFromQuery("id"); if (selectedOwner != null) { if (selectedOwner.Any() && !string.IsNullOrEmpty(id)) { groupOwnerAssignModel = new GroupOwnerAssignModel(); groupOwnerAssignModel.GroupId = id; groupOwnerAssignModel.SelectedOwners = selectedOwner; HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri(CareStreamConst.Base_Url); var payload = JsonConvert.SerializeObject(groupOwnerAssignModel); StringContent content = new StringContent(payload, Encoding.UTF8, CareStreamConst.Application_Json); var result = await httpClient.PostAsync($"{CareStreamConst.Base_API}{CareStreamConst.GroupOwner_Url}", content); if (result.IsSuccessStatusCode) { var data = await result.Content.ReadAsStringAsync(); } } } } catch (Exception ex) { Console.WriteLine(ex); } return(this.RedirectToAction("OnGetAsync", id)); }
public async Task <GroupModel> CreateGroup(GroupModel groupModel) { try { _logger.LogInfo("GroupService-CreateGroup: [Started] creation of group in Azure AD B2C"); if (groupModel == null) { _logger.LogError("GroupService-CreateGroup: Group Model cannot be null..."); return(null); } var client = GraphClientUtility.GetGraphServiceClient(); if (client == null) { _logger.LogError("GroupService-CreateGroup: Unable to create object for graph client "); return(null); } var group = BuildGroup(groupModel); var newGroup = await client.Groups.Request().AddAsync(group); var newGroupModel = GraphClientUtility.ConvertGraphGroupToGroupModel(newGroup, _logger); if (newGroupModel != null) { var groupId = newGroup.Id; if (!string.IsNullOrEmpty(groupId)) { #region Assign Members if (groupModel.OwnerSelected.Any()) { _logger.LogInfo($"GroupService-CreateGroup: assigning {groupModel.OwnerSelected.Count()} owner(s) for group {newGroupModel.DisplayName} in Azure AD B2C"); var groupOwnerAssign = new GroupOwnerAssignModel { GroupId = groupId, SelectedOwners = groupModel.OwnerSelected }; await _groupOwnerService.AddGroupOwners(groupOwnerAssign); _logger.LogInfo($"GroupService-CreateGroup: assigned {groupModel.OwnerSelected.Count()} owner(s) for group {newGroupModel.DisplayName} in Azure AD B2C"); } if (groupModel.MemberSelected.Any()) { _logger.LogInfo($"GroupService-CreateGroup: assigning {groupModel.MemberSelected.Count()} member(s) for group {newGroupModel.DisplayName} in Azure AD B2C"); var groupMemberAssign = new GroupMemberAssignModel { GroupId = groupId, SelectedMembers = groupModel.MemberSelected }; await _groupMemberService.AddGroupMembers(groupMemberAssign); _logger.LogInfo($"GroupService-CreateGroup: assigned {groupModel.MemberSelected.Count()} member(s) for group {newGroupModel.DisplayName} in Azure AD B2C"); } #endregion } } _logger.LogInfo("GroupService-CreateGroup: [Completed] creation of group in Azure AD B2C"); return(newGroupModel); } catch (Exception ex) { _logger.LogError("GroupService-CreateGroup: Exception occured...."); _logger.LogError(ex); throw ex; } }