/// <summary> /// Adds a discussion reference to the current person. /// </summary> /// <param name="discussion">The discussion state with a discussion reference to add.</param> /// <param name="options">The options to apply before executing the REST API call.</param> /// <returns> /// A <see cref="FamilyTreePersonState"/> instance containing the REST API response. /// </returns> public FamilyTreePersonState AddDiscussionReference(DiscussionState discussion, params IStateTransitionOption[] options) { DiscussionReference reference = new DiscussionReference(); reference.Resource = discussion.GetSelfUri(); return(AddDiscussionReference(reference, options)); }
/// <summary> /// Deletes the specified discussion reference from the current person. /// </summary> /// <param name="reference">The discussion reference to delete.</param> /// <param name="options">The options to apply before executing the REST API call.</param> /// <returns> /// A <see cref="FamilyTreePersonState"/> instance containing the REST API response. /// </returns> /// <exception cref="GedcomxApplicationException">Discussion reference cannot be deleted: missing link.</exception> public FamilyTreePersonState DeleteDiscussionReference(DiscussionReference reference, params IStateTransitionOption[] options) { Link link = reference.GetLink(Rel.DISCUSSION_REFERENCE); link = link == null?reference.GetLink(Rel.SELF) : link; if (link == null || link.Href == null) { throw new GedcomxApplicationException("Discussion reference cannot be deleted: missing link."); } IRestRequest request = RequestUtil.ApplyFamilySearchConneg(CreateAuthenticatedGedcomxRequest()).Build(link.Href, Method.DELETE); return((FamilyTreePersonState)((FamilyTreeStateFactory)this.stateFactory).NewPersonStateInt(request, Invoke(request, options), this.Client, this.CurrentAccessToken)); }
/// <summary> /// Updates the specified discussion reference for the current person. /// </summary> /// <param name="reference">The discussion reference to update.</param> /// <param name="options">The options to apply before executing the REST API call.</param> /// <returns> /// A <see cref="FamilyTreePersonState"/> instance containing the REST API response. /// </returns> public FamilyTreePersonState UpdateDiscussionReference(DiscussionReference reference, params IStateTransitionOption[] options) { return(UpdateDiscussionReference(new DiscussionReference[] { reference }, options)); }