/// <summary>
            /// Create an event filter for person.
            /// </summary>
            /// <param name="personIdOrEmail">Person id or email to be filtered.</param>
            /// <param name="personIdType"><see cref="PersonIdType"/> for personIdOrEmail filter.</param>
            public PersonFilter(string personIdOrEmail, PersonIdType personIdType = PersonIdType.Detect)
                : base("personId", personIdOrEmail)
            {
                personIdType = TeamsAPIClient.DetectPersonIdType(personIdOrEmail, personIdType);

                if (personIdType == PersonIdType.Email)
                {
                    this.Key = "personEmail";
                }
            }
Esempio n. 2
0
        /// <inheritDoc/>
        public string GetV1PersonShowUrl(int personId, PersonIdType idType)
        {
            var queryValues = new QueryStringValues();

            if (idType == PersonIdType.External)
            {
                queryValues.Add("id_type", "external");
            }
            return($"api/v1/people/{personId}" + queryValues.ToString(true));
        }
        /// <summary>
        ///     Returns the full representation of a person syncronously
        /// </summary>
        /// <param name="personId">The ID of the person</param>
        /// <param name="throwOnNotFound">
        ///     Whether to throw an <see cref="ApiCallFailedException" /> if the person is not found. If
        ///     false, null will be returned if the person is not found.
        /// </param>
        /// <param name="idType">Type of id to use, set to 'External' to find the person based on their external id</param>
        /// <param name="cancellationToken">Token allowing the request to be cancelled</param>
        /// <returns>The full person representation and their precinct</returns>
        public ShowPersonResponse Show(int personId, bool throwOnNotFound = false,
                                       PersonIdType idType = PersonIdType.NationBuilder,
                                       CancellationToken cancellationToken = default(CancellationToken))
        {
            var url    = UrlProvider.GetV1PersonShowUrl(personId, idType);
            var result = GetJson <ShowPersonResponse>(url, cancellationToken, throwOnNotFound);

            ThrowIfApiFail(result, throwOnNotFound);
            return(result.Payload);
        }
        /// <summary>
        /// Wraps Webex API's CreateTeamMembershipAsync method.
        /// </summary>
        /// <param name="teamId">The team ID.</param>
        /// <param name="personIdOrEmail">The person ID or Email.</param>
        /// <param name="isModerator">Set to true to make the person a room moderator.</param>
        /// <param name="personIdType"><see cref="PersonIdType"/> for personIdOrEmail parameter.</param>
        /// <param name="cancellationToken">A cancellation token for the task.</param>
        /// <returns>The team membership created.</returns>
        public virtual async Task <TeamMembership> CreateTeamMembershipAsync(string teamId, string personIdOrEmail, bool?isModerator = null, PersonIdType personIdType = PersonIdType.Detect, CancellationToken cancellationToken = default)
        {
            var resultTeamMembership = await _api.CreateTeamMembershipAsync(teamId, personIdOrEmail, isModerator, personIdType, cancellationToken).ConfigureAwait(false);

            return(resultTeamMembership.GetData(false));
        }
        /// <summary>
        /// Wraps Webex API's ListSpaceMembershipsAsync method.
        /// </summary>
        /// <param name="spaceId">Limit results to a specific space, by ID.</param>
        /// <param name="personIdOrEmail">Limit results to a specific person, by ID or Email.</param>
        /// <param name="max">Limit the maximum number of items in the response.</param>
        /// <param name="personIdType"><see cref="PersonIdType"/> for personIdOrEmail parameter.</param>
        /// <param name="cancellationToken">A cancellation token for the task.</param>
        /// <returns>The space memberships list.</returns>
        public virtual async Task <SpaceMembershipList> ListSpaceMembershipsAsync(string spaceId = null, string personIdOrEmail = null, int?max = null, PersonIdType personIdType = PersonIdType.Detect, CancellationToken cancellationToken = default)
        {
            var resultSpaceMembershipsList = await _api.ListSpaceMembershipsAsync(spaceId, personIdOrEmail, max, personIdType, cancellationToken).ConfigureAwait(false);

            return(resultSpaceMembershipsList.GetData(false));
        }
Esempio n. 6
0
        /// <summary>
        /// Appends mention to a person.
        /// </summary>
        /// <param name="personIdOrEmail">PersonId or PersonEmail to be mentioned.</param>
        /// <param name="name">Mentioned name.</param>
        /// <param name="personIdType"><see cref="PersonIdType"/> of personIdOrEmail parameter.</param>
        /// <returns>A reference to this instance after the append operation has completed.</returns>
        public MarkdownBuilder AppendMentionToPerson(string personIdOrEmail, string name, PersonIdType personIdType = PersonIdType.Detect)
        {
            personIdType = TeamsAPIClient.DetectPersonIdType(personIdOrEmail, personIdType);

            switch (personIdType)
            {
            case PersonIdType.Email:
                this.markdown.AppendFormat("<@personEmail:{0}|{1}>", encodeHtml(personIdOrEmail), encodeHtml(name));
                break;

            default:
                this.markdown.AppendFormat("<@personId:{0}|{1}>", encodeHtml(personIdOrEmail), encodeHtml(name));
                break;
            }

            return(this);
        }