Пример #1
0
        /// <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);
        }
Пример #3
0
        /// <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));
        }