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);
            }
        }
示例#2
0
 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;
 }
示例#3
0
 internal static async Task <Microsoft365Group> UpdateAsync(HttpClient httpClient, string accessToken, Microsoft365Group group)
 {
     return(await GraphHelper.PatchAsync(httpClient, accessToken, $"v1.0/groups/{group.Id}", group));
 }
示例#4
0
 public Microsoft365GroupPipeBind(Microsoft365Group group)
 {
     _group = group;
 }
示例#5
0
        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);
        }