/// <summary> /// Adds a member to an organization with specified privileges. /// </summary> /// <param name="member">The member to add.</param> /// <param name="membership">The membership type.</param> /// <param name="ct">(Optional) A cancellation token for async processing.</param> /// <returns>The <see cref="IOrganizationMembership"/> generated by Trello.</returns> public async Task <IOrganizationMembership> Add(IMember member, OrganizationMembershipType membership, CancellationToken ct = default) { var error = NotNullRule <IMember> .Instance.Validate(null, member); if (error != null) { throw new ValidationException <IMember>(member, new[] { error }); } var json = TrelloConfiguration.JsonFactory.Create <IJsonOrganizationMembership>(); json.Member = ((Member)member).Json; json.MemberType = membership; var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Write_AddOrUpdateMember, new Dictionary <string, object> { { "_id", OwnerId }, { "_memberId", member.Id } }); var newData = await JsonRepository.Execute(Auth, endpoint, json, ct); if (TrelloConfiguration.EnableConsistencyProcessing && member.Organizations is ReadOnlyCollection <IOrganization> orgCollection) { var org = TrelloConfiguration.Cache.OfType <IOrganization>().FirstOrDefault(o => o.Id == OwnerId); if (org != null) { orgCollection.Items.Add(org); } } return(new OrganizationMembership(newData, OwnerId, Auth)); }
/// <summary> /// Adds a member to an organization with specified privileges. /// </summary> /// <param name="member">The member to add.</param> /// <param name="membership">The membership type.</param> public void Add(Member member, OrganizationMembershipType membership) { var error = NotNullRule <Member> .Instance.Validate(null, member); if (error != null) { throw new ValidationException <Member>(member, new[] { error }); } var json = TrelloConfiguration.JsonFactory.Create <IJsonOrganizationMembership>(); json.Member = member.Json; json.MemberType = membership; var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Write_AddOrUpdateMember, new Dictionary <string, object> { { "_id", OwnerId }, { "_memberId", member.Id } }); JsonRepository.Execute(Auth, endpoint, json); }
/// <summary> /// Adds a member to an organization with specified privileges. /// </summary> /// <param name="member">The member to add.</param> /// <param name="membership">The membership type.</param> /// <param name="ct">(Optional) A cancellation token for async processing.</param> /// <returns>The <see cref="IOrganizationMembership"/> generated by Trello.</returns> public async Task <IOrganizationMembership> Add(IMember member, OrganizationMembershipType membership, CancellationToken ct = default(CancellationToken)) { var error = NotNullRule <IMember> .Instance.Validate(null, member); if (error != null) { throw new ValidationException <IMember>(member, new[] { error }); } var json = TrelloConfiguration.JsonFactory.Create <IJsonOrganizationMembership>(); json.Member = ((Member)member).Json; json.MemberType = membership; var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Write_AddOrUpdateMember, new Dictionary <string, object> { { "_id", OwnerId }, { "_memberId", member.Id } }); var newData = await JsonRepository.Execute(Auth, endpoint, json, ct); return(new OrganizationMembership(newData, OwnerId, Auth)); }