Exemplo n.º 1
0
        public async void AddMemberWithoutHistory(GraphServiceClient graphClient, Chat response, string[] members)
        {
            var conversationMember = new AadUserConversationMember
            {
                Roles = new List <string>()
                {
                    "owner"
                },
                AdditionalData = new Dictionary <string, object>()
                {
                    { "*****@*****.**", "https://graph.microsoft.com/v1.0/users/" + members[2] }
                }
            };

            await graphClient.Chats[response.Id].Members
            .Request()
            .AddAsync(conversationMember);
        }
Exemplo n.º 2
0
        public async void AddMemberWithNoOfDays(GraphServiceClient graphClient, Chat response, string[] members)
        {
            if (members.Length == 4)
            {
                var conversationMember = new AadUserConversationMember
                {
                    VisibleHistoryStartDateTime = DateTimeOffset.Parse("2021-05-20T00:51:43.255Z"),
                    Roles = new List <string>()
                    {
                        "owner"
                    },
                    AdditionalData = new Dictionary <string, object>()
                    {
                        { "*****@*****.**", "https://graph.microsoft.com/v1.0/users/" + members[3] }
                    }
                };

                await graphClient.Chats[response.Id].Members
                .Request()
                .AddAsync(conversationMember);
            }
            else
            {
                foreach (var member in members)
                {
                    var conversationMember = new AadUserConversationMember
                    {
                        VisibleHistoryStartDateTime = DateTimeOffset.Parse("2021-05-20T00:51:43.255Z"),
                        Roles = new List <string>()
                        {
                            "owner"
                        },
                        AdditionalData = new Dictionary <string, object>()
                        {
                            { "*****@*****.**", "https://graph.microsoft.com/v1.0/users/" + member }
                        }
                    };

                    await graphClient.Chats[response.Id].Members
                    .Request()
                    .AddAsync(conversationMember);
                }
            }
        }
        // Add the user in the team.
        public async void AddUserToTeam(string teamId, string userId)
        {
            var graphClient        = GetAuthenticatedClient();
            var conversationMember = new AadUserConversationMember
            {
                Roles = new List <String>()
                {
                    "owner"
                },
                AdditionalData = new Dictionary <string, object>()
                {
                    { "*****@*****.**", "https://graph.microsoft.com/v1.0/users('" + userId + "')" }
                }
            };

            var response = await graphClient.Teams[teamId].Members
                           .Request()
                           .AddAsync(conversationMember);
        }
Exemplo n.º 4
0
        public async void AddMemberWithHistory(GraphServiceClient graphClient, Chat response, string[] members)
        {
            var conversationMember = new AadUserConversationMember
            {
                VisibleHistoryStartDateTime = DateTimeOffset.Parse("0001-01-01T00:00:00Z"),
                Roles = new List <string>()
                {
                    "owner"
                },
                AdditionalData = new Dictionary <string, object>()
                {
                    { "*****@*****.**", "https://graph.microsoft.com/v1.0/users/" + members[1] }
                }
            };

            await graphClient.Chats[response.Id].Members
            .Request()
            .AddAsync(conversationMember);
        }
        public async Task <JoinUsersToTeamByIdOutputData> Execute(JoinUsersToTeamByIdInputData request)
        {
            JoinUsersToTeamByIdOutputData response = null;

            try
            {
                var conversationMember = new AadUserConversationMember
                {
                    AdditionalData = new Dictionary <string, object>()
                };

                foreach (var row in request.UsersGUID)
                {
                    conversationMember.AdditionalData.Add(
                        "*****@*****.**", $"https://graph.microsoft.com/v1.0/users('{row}')");
                }

                await Graph.Teams[request.GUID].Members
                .Request()
                .AddAsync(conversationMember);

                var memberOf = await Graph.Teams[request.GUID].Members
                               .Request()
                               .GetAsync();

                var users = new List <UserModel>();

                foreach (var cm in memberOf)
                {
                    var item = (AadUserConversationMember)cm;
                    var user = await Graph.Users[item.UserId].Request()
                               .Select(u => new
                    {
                        u.Id,
                        u.DisplayName,
                        u.Department,
                        u.Mail,
                        u.MailNickname,
                        u.MobilePhone,
                        u.Birthday,
                        u.CreatedDateTime,
                        u.JobTitle,
                        u.StreetAddress
                    })
                               .GetAsync();

                    var userModel = new UserModel(user);

                    users.Add(userModel);
                }

                response = new JoinUsersToTeamByIdOutputData
                {
                    Users = users
                };

                logger.Information(
                    $"Type: JoinUsersToTeamByIdActivity; Method: Execute; Info: Join Users To Team By Id: {request.GUID} successfully");
            }
            catch (Exception e)
            {
                logger.Error($"Type: JoinUsersToTeamByIdActivity; Method: Execute; Error: {e.Message}");
                throw;
            }

            return(await Task.FromResult(response));
        }
        public async Task <CreateOrAddTeamOutputData> Execute(CreateOrAddTeamInputData request)
        {
            CreateOrAddTeamOutputData response = null;

            try
            {
                foreach (var item in request.List)
                {
                    var group = new Microsoft.Graph.Group
                    {
                        DisplayName = item.Name,
                        MailEnabled = true,
                        GroupTypes  = new List <string>
                        {
                            "Unified"
                        },
                        SecurityEnabled = false,
                        MailNickname    = TranslitHelper.Execute(item.Name.Replace(" ", "").Replace(".", "").ToLower())
                    };

                    var result = await Graph.Groups
                                 .Request()
                                 .AddAsync(group);

                    var owner = new DirectoryObject
                    {
                        Id = item.OwnerGUID
                    };

                    await Graph.Groups[result.Id].Owners.References
                    .Request()
                    .AddAsync(owner);

                    var teamSettings = new Microsoft.Graph.Team
                    {
                        MemberSettings = new TeamMemberSettings
                        {
                            AllowCreatePrivateChannels = true,
                            AllowCreateUpdateChannels  = true,
                            ODataType = null
                        },
                        MessagingSettings = new TeamMessagingSettings
                        {
                            AllowUserEditMessages   = true,
                            AllowUserDeleteMessages = true,
                            ODataType = null
                        },
                        FunSettings = new TeamFunSettings
                        {
                            AllowGiphy         = true,
                            GiphyContentRating = GiphyRatingType.Strict,
                            ODataType          = null
                        },
                        ODataType = null
                    };

                    var team = await Graph.Groups[result.Id].Team
                               .Request()
                               .PutAsync(teamSettings);


                    var conversationMember = new AadUserConversationMember
                    {
                        AdditionalData = new Dictionary <string, object>()
                    };

                    foreach (var row in item.ParticipantsList)
                    {
                        conversationMember.AdditionalData.Add(
                            "*****@*****.**", $"https://graph.microsoft.com/v1.0/users('{row}')");
                    }

                    await Graph.Teams[team.Id].Members
                    .Request()
                    .AddAsync(conversationMember);
                }

                response = new CreateOrAddTeamOutputData();

                logger.Information(
                    "Type: CreateOrAddTeamActivity; Method: Execute; Info: Create team for request successfully");
            }
            catch (Exception e)
            {
                logger.Error($"Type: CreateOrAddTeamActivity; Method: Execute; Error: {e.Message}");
                throw;
            }

            return(await Task.FromResult(response));
        }