protected override void ExecuteCmdlet() { if (MailNickname.Contains(" ")) { throw new ArgumentException("MailNickname cannot contain spaces."); } bool forceCreation; if (!Force) { var candidate = Microsoft365GroupsUtility.GetGroupAsync(HttpClient, MailNickname, AccessToken, false, false).GetAwaiter().GetResult(); forceCreation = candidate == null || ShouldContinue($"The Microsoft 365 Group '{MailNickname} already exists. Do you want to create a new one?", Resources.Confirm); } else { forceCreation = true; } if (forceCreation) { if (ParameterSpecified(nameof(LogoPath))) { if (System.IO.Path.IsPathRooted(LogoPath)) { LogoPath = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, LogoPath); } if (!System.IO.File.Exists(LogoPath)) { throw new PSArgumentException("File specified for logo does not exist."); } } var newGroup = new Microsoft365Group() { DisplayName = DisplayName, Description = Description, MailNickname = MailNickname, Visibility = IsPrivate ? "Private" : "Public", MailEnabled = true, SecurityEnabled = false, GroupTypes = new string[] { "Unified" } }; var group = Microsoft365GroupsUtility.CreateAsync(HttpClient, AccessToken, newGroup, CreateTeam, LogoPath, Owners, Members, HideFromAddressLists, HideFromOutlookClients).GetAwaiter().GetResult(); if (ParameterSpecified(nameof(HideFromAddressLists)) || ParameterSpecified(nameof(HideFromOutlookClients))) { Microsoft365GroupsUtility.SetVisibilityAsync(HttpClient, AccessToken, group.Id.Value, HideFromAddressLists, HideFromOutlookClients).GetAwaiter().GetResult(); } var updatedGroup = Microsoft365GroupsUtility.GetGroupAsync(HttpClient, group.Id.Value, AccessToken, true, false).GetAwaiter().GetResult(); WriteObject(updatedGroup); } }
public Microsoft365Group GetGroup(HttpClient httpClient, string accessToken, bool includeSite, bool includeOwners) { Microsoft365Group group = null; if (Group != null) { group = Microsoft365GroupsUtility.GetGroupAsync(httpClient, _group.Id.Value, accessToken, includeSite, includeOwners).GetAwaiter().GetResult(); } else if (_groupId != Guid.Empty) { group = Microsoft365GroupsUtility.GetGroupAsync(httpClient, _groupId, accessToken, includeSite, includeOwners).GetAwaiter().GetResult(); } else if (!string.IsNullOrEmpty(DisplayName)) { group = Microsoft365GroupsUtility.GetGroupAsync(httpClient, DisplayName, accessToken, includeSite, includeOwners).GetAwaiter().GetResult(); } return group; }
internal static async Task <Microsoft365Group> UpdateAsync(HttpClient httpClient, string accessToken, Microsoft365Group group) { return(await GraphHelper.PatchAsync(httpClient, accessToken, $"v1.0/groups/{group.Id}", group)); }
public Microsoft365GroupPipeBind(Microsoft365Group group) { _group = group; }
internal static async Task <Microsoft365Group> CreateAsync(HttpClient httpClient, string accessToken, Microsoft365Group group, bool createTeam, string logoPath, string[] owners, string[] members, bool?hideFromAddressLists, bool?hideFromOutlookClients) { if (owners != null && owners.Length > 0) { group.OwnersODataBind = await GetUsersDataBindValueAsync(httpClient, accessToken, owners); } if (members != null && members.Length > 0) { group.MembersODataBind = await GetUsersDataBindValueAsync(httpClient, accessToken, members); } var newGroup = await GraphHelper.PostAsync(httpClient, "v1.0/groups", group, accessToken); if (hideFromAddressLists.HasValue || hideFromOutlookClients.HasValue) { await SetVisibilityAsync(httpClient, accessToken, newGroup.Id.Value, hideFromAddressLists, hideFromOutlookClients); } if (!string.IsNullOrEmpty(logoPath)) { await UploadLogoAsync(httpClient, accessToken, newGroup.Id.Value, logoPath); } if (createTeam) { await CreateTeamAsync(httpClient, accessToken, newGroup.Id.Value); } return(newGroup); }