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); }
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); }
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); }
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); } }
/// <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); }
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); }
/// <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)); }
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); } }
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); } }
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)); }
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)); }
/// <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); }
/// <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."); } }
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); } }