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"));
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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));
        }
Exemple #5
0
        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;
            }
        }