Ejemplo n.º 1
0
        private void RemoveUsersFromTeam(Guid idTeam, IEnumerable <Guid> userList)
        {
            if (userList == null || !userList.Any())
            {
                return;
            }

            var hashSet = new HashSet <Guid>(userList);

            var teamUsers = GetTeamUsers(idTeam, userList.ToArray());

            var usersToRemove = teamUsers.Where(r => hashSet.Contains(r)).ToArray();

            if (!usersToRemove.Any())
            {
                return;
            }

            var request = new RemoveMembersTeamRequest()
            {
                TeamId    = idTeam,
                MemberIds = usersToRemove,
            };

            var response = (RemoveMembersTeamResponse)_service.Execute(request);
        }
Ejemplo n.º 2
0
        private void RemoveUserFromTeams(Guid idUser, IEnumerable <Guid> teamList)
        {
            if (teamList == null || !teamList.Any())
            {
                return;
            }

            var hashSet = new HashSet <Guid>(teamList);

            var userTeams = GetUserTeams(idUser, teamList.ToArray());

            var teamsToRemove = userTeams.Where(r => hashSet.Contains(r)).ToArray();

            if (!teamsToRemove.Any())
            {
                return;
            }

            var userArray = new[] { idUser };

            foreach (var idTeam in teamsToRemove)
            {
                var request = new RemoveMembersTeamRequest()
                {
                    TeamId    = idTeam,
                    MemberIds = userArray,
                };

                var response = (RemoveMembersTeamResponse)_service.Execute(request);
            }
        }
        public static void RemoveMembersFromTeam(Guid teamId, Guid[] membersId, IOrganizationService service)
        {
            RemoveMembersTeamRequest removeRequest = new RemoveMembersTeamRequest();

            removeRequest.TeamId    = teamId;
            removeRequest.MemberIds = membersId;
            service.Execute(removeRequest);
        }
Ejemplo n.º 4
0
        public void GetAllSecurityteam()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            /*
             *
             * Select AccountId, AccountName
             * From Account
             * Where AccountStatus= 'Customer'
             * Order by AccountName Asec
             * */

            string          teamName = "FinanceTeam";
            QueryExpression query    = new QueryExpression("systemuser");

            query.ColumnSet = new ColumnSet(new string[] { "fullname", "domainname" });
            LinkEntity TeamOwnerShipLinkEntity = new LinkEntity("systemusuer", "teammembership", "systemuserid", "systemuserid", JoinOperator.Inner);
            LinkEntity TeamLinkEnitty          = new LinkEntity("teammembership", "team", "teamid", "teamid", JoinOperator.Inner);

            TeamLinkEnitty.LinkCriteria.AddCondition("name", ConditionOperator.Equal, teamName);
            TeamOwnerShipLinkEntity.LinkEntities.Add(TeamLinkEnitty);
            query.LinkEntities.Add(TeamOwnerShipLinkEntity);


            EntityCollection accountEntityList = service.RetrieveMultiple(query);



            // Create the AddMembersTeamRequest object.
            AddMembersTeamRequest addRequest = new AddMembersTeamRequest();

            // Set the AddMembersTeamRequest TeamID property to the object ID of
            // an existing team.
            addRequest.TeamId = new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD");

            // Set the AddMembersTeamRequest MemberIds property to an
            // array of GUIDs that contains the object IDs of one or more system users.
            Guid[] memberIds = new[] { new Guid("C68F0F3F-680D-E811-A95B-000D3AF07CE4") };
            addRequest.MemberIds = memberIds;

            // Execute the request.
            service.Execute(addRequest);

            RemoveMembersTeamRequest removeRequest = new RemoveMembersTeamRequest();

            removeRequest.TeamId = new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD");

            // Set the AddMembersTeamRequest MemberIds property to an
            // array of GUIDs that contains the object IDs of one or more system users.

            removeRequest.MemberIds = memberIds;

            // Execute the request.
            service.Execute(removeRequest);


            //service.Associate("team", new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD"), new Relationship("teamroles_association"),)
        }
        private void RemoveUserFromTeam(Entity user, Guid teamId)
        {
            var removeUserRequest = new RemoveMembersTeamRequest();

            removeUserRequest.MemberIds = new[] { user.Id };
            removeUserRequest.TeamId    = teamId;

            _client.Execute(removeUserRequest);
        }
Ejemplo n.º 6
0
 public void RemoveFromTeam(Guid userId, Guid teamId)
 {
     if (IsInTeam(userId, teamId))
     {
         var request = new RemoveMembersTeamRequest();
         request.TeamId    = teamId;
         request.MemberIds = new[] { userId };
         XrmService.Execute(request);
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Remove users from a team
        /// </summary>
        /// <param name="team"></param>
        /// <param name="users"></param>
        public void RemoveUsersFromTeam(EntityReference team, params EntityReference[] users)
        {
            var req = new RemoveMembersTeamRequest
            {
                TeamId    = team.Id,
                MemberIds = users.Select(x => x.Id).ToArray()
            };

            Core.Execute(req, AdminUser);
        }
Ejemplo n.º 8
0
        public void RemoveUsersFromTeam(EntityReference teamRef, params EntityReference[] userRefs)
        {
            var request = new RemoveMembersTeamRequest
            {
                MemberIds = userRefs.Select(u => u.Id).ToArray(),
                TeamId    = teamRef.Id
            };

            AdminOrganizationService.Execute(request);
        }
        private void RemoveMember(IOrganizationService orgService, Entity systemUser)
        {
            var team = GetBusinessUnitDefaultTeam(orgService, systemUser);

            var request = new RemoveMembersTeamRequest
            {
                TeamId    = team.Id,
                MemberIds = new[] { systemUser.Id }
            };

            orgService.Execute(request);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Remove specified <c>System User</c> list from <c>Team</c>.
        /// <para>
        /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.removemembersteamrequest(v=crm.8).aspx
        /// </para>
        /// </summary>
        /// <param name="teamId"><c>Team</c> Id</param>
        /// <param name="systemuserIdList"><c>System User</c> Id list</param>
        /// <returns>
        /// <see cref="RemoveMembersTeamResponse"/>
        /// </returns>
        public RemoveMembersTeamResponse RemoveMember(Guid teamId, List <Guid> systemuserIdList)
        {
            ExceptionThrow.IfGuidEmpty(teamId, "teamId");
            ExceptionThrow.IfNullOrEmpty(systemuserIdList.ToArray(), "systemuserIdList");

            RemoveMembersTeamRequest request = new RemoveMembersTeamRequest()
            {
                TeamId    = teamId,
                MemberIds = systemuserIdList.ToArray()
            };

            return((RemoveMembersTeamResponse)this.OrganizationService.Execute(request));
        }
Ejemplo n.º 11
0
        public void When_a_member_is_removed_from_an_existing_list_member_is_removed_successfully()
        {
            var ctx     = new XrmFakedContext();
            var service = ctx.GetOrganizationService();

            var team = new Team
            {
                Id   = Guid.NewGuid(),
                Name = "Some team"
            };

            var systemuser = new SystemUser
            {
                Id = Guid.NewGuid()
            };


            var teammembership = new Entity("teammembership")
            {
                Id = Guid.NewGuid()
            };

            // We use this way, because the TeamId and SystemUserId properties are readonly
            teammembership["teamid"]       = team.Id;
            teammembership["systemuserid"] = systemuser.Id;

            ctx.Initialize(new List <Entity>
            {
                team,
                systemuser,
                teammembership
            });

            RemoveMembersTeamRequest removeMembersTeamRequest = new RemoveMembersTeamRequest
            {
                MemberIds = new[]
                {
                    systemuser.Id
                },
                TeamId = team.ToEntityReference().Id
            };

            service.Execute(removeMembersTeamRequest);

            using (var context = new XrmServiceContext(service))
            {
                var member = context.CreateQuery <TeamMembership>().FirstOrDefault(tm => tm.TeamId == team.Id && tm.SystemUserId == systemuser.Id);

                Assert.Null(member);
            }
        }
Ejemplo n.º 12
0
        public void RemoveMembersFromTeam(Guid?TeamId, Guid[] Users, IOrganizationService service)
        {
            Guid[] UserIds;

            if (TeamId.HasValue)
            {
                tracingService.Trace("before removal");

                RemoveMembersTeamRequest addRequest = new RemoveMembersTeamRequest();
                addRequest.TeamId    = TeamId.Value;
                addRequest.MemberIds = Users;
                service.Execute(addRequest);
            }
        }
Ejemplo n.º 13
0
        public void When_a_request_is_called_with_a_null_memberid_parameter_exception_is_thrown()
        {
            var ctx     = new XrmFakedContext();
            var service = ctx.GetOrganizationService();

            RemoveMembersTeamRequest removeMembersTeamRequest = new RemoveMembersTeamRequest
            {
                MemberIds = null,
                TeamId    = Guid.NewGuid()
            };

            // Execute the request.
            Assert.Throws <FaultException <OrganizationServiceFault> >(() => service.Execute(removeMembersTeamRequest));
        }
Ejemplo n.º 14
0
        public void When_a_member_is_added_to_a_non_existing_team_exception_is_thrown()
        {
            var ctx     = new XrmFakedContext();
            var service = ctx.GetOrganizationService();

            RemoveMembersTeamRequest removeMembersTeamRequest = new RemoveMembersTeamRequest
            {
                MemberIds = new[]
                {
                    Guid.NewGuid()
                },
                TeamId = Guid.NewGuid()
            };

            // Execute the request.
            Assert.Throws <FaultException <OrganizationServiceFault> >(() => service.Execute(removeMembersTeamRequest));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// If there is a separate user connection for the XrmService connection used for scripting limited security
        /// sets that connections user as a member of the teamId and removes them from any other team
        /// </summary>
        /// <param name="teamId">id of the team to set the test script user in</param>
        public void SetTestUserAsTeamMember(Guid teamId)
        {
            var testUserId  = XrmService.WhoAmI();
            var adminUserId = XrmServiceAdmin.WhoAmI();

            //if the same user for both the admin and standard connection then don't bother
            if (testUserId == adminUserId)
            {
                return;
            }

            //get the non-default teams th4e test user a member of
            var teamQuery = XrmServiceAdmin.BuildQuery(Entities.team,
                                                       fields: new string[0],
                                                       conditions: new[] { new ConditionExpression(Fields.team_.isdefault, ConditionOperator.NotEqual, true) });
            var memberJoin = teamQuery.AddLink(Relationships.team_.teammembership_association.EntityName, Fields.team_.teamid, Fields.team_.teamid);

            memberJoin.LinkCriteria.AddCondition(new ConditionExpression(Fields.systemuser_.systemuserid, ConditionOperator.Equal, testUserId));
            var teamsMemberships = XrmServiceAdmin.RetrieveAll(teamQuery);

            //if they are already only a member of the team then return
            if (teamsMemberships.Count() == 1 && teamsMemberships.First().Id == teamId)
            {
                return;
            }

            //remove them from the teams they are a member of
            foreach (var team in teamsMemberships)
            {
                if (!team.GetBoolean(Fields.team_.isdefault))
                {
                    var removeRequest = new RemoveMembersTeamRequest();
                    removeRequest.TeamId    = team.Id;
                    removeRequest.MemberIds = new[] { testUserId };
                    XrmService.Execute(removeRequest);
                }
            }

            //add them to the team
            var addRequest = new AddMembersTeamRequest();

            addRequest.TeamId    = teamId;
            addRequest.MemberIds = new[] { testUserId };
            XrmService.Execute(addRequest);
        }
        protected override void Execute(CodeActivityContext executionContext)
        {
            #region "Load CRM Service from context"

            Common objCommon = new Common(executionContext);
            objCommon.tracingService.Trace("Load CRM Service from context --- OK");
            #endregion

            #region "Read Parameters"
            EntityReference userReference = this.User.Get(executionContext);
            EntityReference teamReference = this.Team.Get(executionContext);

            objCommon.tracingService.Trace(String.Format("UserID: {0} - TeamID: {1} ", userReference.Id.ToString(), teamReference.Id.ToString()));
            #endregion

            RemoveMembersTeamRequest req = new RemoveMembersTeamRequest();
            req.TeamId    = teamReference.Id;
            req.MemberIds = new[] { userReference.Id };
            RemoveMembersTeamResponse res = (RemoveMembersTeamResponse)objCommon.service.Execute(req);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Deletes any entity records that were created for this sample.
        /// <param name="prompt">Indicates whether to prompt the user
        /// to delete the records created in this sample.</param>
        /// </summary>
        public void DeleteRequiredRecords(bool prompt)
        {
            bool toBeDeleted = true;

            if (prompt)
            {
                // Ask the user if the created entities should be deleted.
                Console.Write("\nDo you want these entity records deleted? (y/n) [y]: ");
                String answer = Console.ReadLine();
                if (answer.StartsWith("y") ||
                    answer.StartsWith("Y") ||
                    answer == String.Empty)
                {
                    toBeDeleted = true;
                }
                else
                {
                    toBeDeleted = false;
                }
            }

            if (toBeDeleted)
            {
                // Remove all the users from the team before deleting the team.
                var deleteFromTeamRequest = new RemoveMembersTeamRequest
                {
                    TeamId    = _teamId,
                    MemberIds = new[] { _currentUserId, salesPersons[0], salesPersons[1] }
                };
                _serviceProxy.Execute(deleteFromTeamRequest);

                // Delete records created in this sample.
                _serviceProxy.Delete(Account.EntityLogicalName, _accountId);
                _serviceProxy.Delete(Team.EntityLogicalName, _teamId);

                Console.WriteLine("Entity record(s) have been deleted.");
            }
        }
Ejemplo n.º 18
0
        public void When_a_non_existing_member_is_removed_from_an_existing_list_exception_is_thrown()
        {
            var ctx     = new XrmFakedContext();
            var service = ctx.GetOrganizationService();

            var team = new Team
            {
                Id   = Guid.NewGuid(),
                Name = "Some team"
            };


            var teammembership = new Entity("teammembership")
            {
                Id = Guid.NewGuid()
            };

            // We use this way, because the TeamId and SystemUserId properties are readonly
            teammembership["teamid"]       = team.Id;
            teammembership["systemuserid"] = Guid.NewGuid();

            ctx.Initialize(new List <Entity>
            {
                team,
                teammembership
            });

            RemoveMembersTeamRequest removeMembersTeamRequest = new RemoveMembersTeamRequest
            {
                MemberIds = new[]
                {
                    Guid.NewGuid()
                },
                TeamId = team.ToEntityReference().Id
            };

            Assert.Throws <FaultException <OrganizationServiceFault> >(() => service.Execute(removeMembersTeamRequest));
        }
        private void ImportAndAddButton_Click(object sender, EventArgs e)
        {
            ResultTextBox.Text = string.Empty;
            if (TeamBusinessUnitSelectionOptionset.SelectedIndex == -1)//Nothing selected
            {
                MessageBox.Show("Please select Team ", "Error");
                return;
            }
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;


            progressBar1.Value = 10;


            List <ProcessCSV> listA = new List <ProcessCSV>();

            string Location = FileLocationTextBox.Text;

            using (var reader = new System.IO.StreamReader(Location))
            {
                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split(',');
                    listA.Add(new ProcessCSV {
                        emailuser = values[0]
                    });
                    progressBar1.Value = 20;
                }

                progressBar1.Value = 30;
            }



            string text      = string.Empty;
            int    userCount = 0;

            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
            EntityCollection UserEmails = new EntityCollection();

            var fetchXml = "<fetch>"
                           + "<entity name='systemuser'>"
                           + "<filter>"
                           + "<condition attribute='domainname' operator='in'>";

            foreach (ProcessCSV email in listA)
            {
                userCount++;

                progressBar1.Value = 40;

                if (userCount > 200)
                {
                    MessageBox.Show("This tool can process only first 200 Records");
                    //System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE=""JavaScript"">alert("Hello this is an Alert")</SCRIPT>");
                    goto BreakLoop;
                }
                fetchXml += "<value>" + email.emailuser + "</value>";
            }



BreakLoop:

            //timer1.Interval = userCount;

            fetchXml += "</condition>"
                        + "</filter>"
                        + "</entity>"
                        + "</fetch> ";

            EntityCollection userCollection = new EntityCollection();

            try
            {
                userCollection = Service.RetrieveMultiple(new FetchExpression(fetchXml));
            }
            catch (Exception ex)
            {
                progressBar1.Value = 10;
                throw new InvalidPluginExecutionException(ex.Message + "As you have provided Invalid CSV file");
            }

            try
            {
                progressBar1.Value = 50;
                // MessageBox.Show(userCollection.Entities.Count.ToString());

                string ResultedString = "Below Users are Added Sucessfully to " + TeamBusinessUnitSelectionOptionset.Text + " " + System.Environment.NewLine;
                Guid[] members        = new Guid[userCollection.Entities.Count];

                if (AssignmentcomboBox.SelectedIndex == 0)
                {
                    if (checkbox == true && userCollection.Entities.Count > 0)
                    {
                        progressBar1.Value = 70;
                        // Instantiate QueryExpression QEsystemuser
                        var QEsystemuser = new QueryExpression("systemuser");

                        // Add columns to QEsystemuser.ColumnSet
                        QEsystemuser.ColumnSet.AddColumns("systemuserid");

                        // Add link-entity QEsystemuser_teammembership
                        var QEsystemuser_teammembership = QEsystemuser.AddLink("teammembership", "systemuserid", "systemuserid");

                        // Define filter QEsystemuser_teammembership.LinkCriteria
                        QEsystemuser_teammembership.LinkCriteria.AddCondition("teamid", ConditionOperator.Equal, teamToBeassign);


                        EntityCollection usersToBeremoveCollection = Service.RetrieveMultiple(QEsystemuser);

                        Guid[] removeMembers = new Guid[usersToBeremoveCollection.Entities.Count];
                        for (int i = 0; i < usersToBeremoveCollection.Entities.Count; i++)
                        {
                            removeMembers[i] = (Guid)usersToBeremoveCollection.Entities[i].Attributes["systemuserid"];
                        }


                        // Create the AddMembersTeamRequest object.
                        RemoveMembersTeamRequest addRequest2 = new RemoveMembersTeamRequest();


                        // Set the AddMembersTeamRequest TeamID property to the object ID of
                        // an existing team.
                        addRequest2.TeamId = EntityToBeassign;

                        // Set the AddMembersTeamRequest MemberIds property to an
                        // array of GUIDs that contains the object IDs of one or more system users.
                        addRequest2.MemberIds = removeMembers;

                        // Execute the request.
                        Service.Execute(addRequest2);
                    }



                    //timer1.Start();

                    if (userCount == userCollection.Entities.Count || userCount == 201)
                    {
                        for (int i = 0; i < userCollection.Entities.Count; i++)
                        {
                            progressBar1.Value = 60;

                            //MessageBox.Show(userCollection.Entities[i].Id.ToString());
                            members[i] = (Guid)userCollection.Entities[i].Attributes["systemuserid"];
                            //MessageBox.Show(i.ToString());


                            ResultedString += (userCollection.Entities[i].Attributes["fullname"]).ToString().ToUpper() + "" + System.Environment.NewLine;

                            // textBox1.Text += (Guid)userCollection.Entities[i].Attributes["systemuserid"];
                        }
                        if (EntityToBeassign != Guid.Empty && members.Length != 0)
                        {
                            progressBar1.Value = 90;
                            // Create the AddMembersTeamRequest object.
                            AddMembersTeamRequest addRequest = new AddMembersTeamRequest();

                            // Set the AddMembersTeamRequest TeamID property to the object ID of
                            // an existing team.

                            addRequest.TeamId = EntityToBeassign;

                            // Set the AddMembersTeamRequest MemberIds property to an
                            // array of GUIDs that contains the object IDs of one or more system users.
                            addRequest.MemberIds = members;

                            // Execute the request.
                            Service.Execute(addRequest);

                            progressBar1.Value = 100;
                            ResultTextBox.Text = ResultedString;
                            MessageBox.Show("Task completed Sucessfully", "sucess");
                            // progressBar1.ForeColor = Color.Black;
                        }
                    }
                    else
                    {
                        progressBar1.Value = 10;
                        MessageBox.Show("Task Could Not Be completed (Please check csv file)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        //progressBar1.ForeColor= Color.Black;
                    }
                }
                else
                {
                    if (userCount == userCollection.Entities.Count || userCount == 201)
                    {
                        if (EntityToBeassign != Guid.Empty && members.Length != 0)
                        {
                            foreach (Entity user in userCollection.Entities)
                            {
                                progressBar1.Value = 90;
                                SetBusinessSystemUserRequest changeUserBURequest = new SetBusinessSystemUserRequest();
                                changeUserBURequest.BusinessId        = EntityToBeassign;
                                changeUserBURequest.UserId            = user.Id;
                                changeUserBURequest.ReassignPrincipal = new EntityReference("systemuser", user.Id);
                                Service.Execute(changeUserBURequest);
                            }
                            for (int i = 0; i < userCollection.Entities.Count; i++)
                            {
                                progressBar1.Value = 60;

                                //MessageBox.Show(userCollection.Entities[i].Id.ToString());
                                members[i] = (Guid)userCollection.Entities[i].Attributes["systemuserid"];
                                //MessageBox.Show(i.ToString());


                                ResultedString += (userCollection.Entities[i].Attributes["fullname"]).ToString().ToUpper() + "" + System.Environment.NewLine;
                            }
                            progressBar1.Value = 100;
                            ResultTextBox.Text = ResultedString;
                            MessageBox.Show("Task completed Sucessfully", "sucess");
                            // progressBar1.ForeColor = Color.Black;
                        }
                    }
                    else
                    {
                        progressBar1.Value = 10;
                        MessageBox.Show("Task Could Not Be completed (Please check csv file)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        //progressBar1.ForeColor= Color.Black;
                    }
                }

                //timer1.Start();


                // MessageBox.Show("TaskCompleted total "+userCount+" users are added to "+TeamSelectorOptionset.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Deletes any entity records that were created for this sample.
        /// <param name="prompt">Indicates whether to prompt the user 
        /// to delete the records created in this sample.</param>
        /// </summary>
        public void DeleteRequiredRecords(bool prompt)
        {
            bool toBeDeleted = true;

            if (prompt)
            {
                // Ask the user if the created entities should be deleted.
                Console.Write("\nDo you want these entity records deleted? (y/n) [y]: ");
                String answer = Console.ReadLine();
                if (answer.StartsWith("y") ||
                    answer.StartsWith("Y") ||
                    answer == String.Empty)
                {
                    toBeDeleted = true;
                }
                else
                {
                    toBeDeleted = false;
                }
            }

            if (toBeDeleted)
            {
                // Remove all the users from the team before deleting the team.
                var deleteFromTeamRequest = new RemoveMembersTeamRequest
                {
                    TeamId = _teamId,
                    MemberIds = new[] { _currentUserId, salesPersons[0], salesPersons[1] }
                };
                _serviceProxy.Execute(deleteFromTeamRequest);

                // Delete records created in this sample.
                _serviceProxy.Delete(Account.EntityLogicalName, _accountId);
                _serviceProxy.Delete(Team.EntityLogicalName, _teamId);

                Console.WriteLine("Entity record(s) have been deleted.");
            }
        }