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