Example #1
0
        /// <summary>
        /// Replies as a staff member on the behalf of a patron to a conditonal raised by a previous hold request creation.
        /// </summary>
        /// <param name="holdRequest">The result of the hold request that you are replying to.</param>
        /// <param name="requestingOrgId">The Org ID of the branch processing the request.</param>
        /// <param name="answer">The answer to the conditional.</param>
        /// <param name="state">Which conditional will this answer be replied to?</param>
        /// <returns>An object containing the hold request creation result.</returns>
        /// <seealso cref="HoldRequestReplyData"/>
        /// <seealso cref="HoldRequestResult"/>
        public PapiResponse <HoldRequestReplyData> HoldRequestReply(HoldRequestResult holdRequest, int requestingOrgId, int answer, int state)
        {
            var xml = HoldRequestHelper.BuildHoldRequestReplyXml(holdRequest, requestingOrgId, answer, state);
            var url = $"/PAPIService/REST/public/v1/1033/100/1/holdrequest/{holdRequest.RequestGuid}";

            return(OverrideExecute <HoldRequestReplyData>(HttpMethod.Put, url, body: xml));
        }
        /// <summary>
        /// Uses staff credentials to reactivate a hold request for a user.
        /// </summary>
        /// <param name="barcode">The patron's barcode.</param>
        /// <param name="requestId">The ID of the hold request.</param>
        /// <param name="activationDate">The date the hold request will become active.</param>
        /// <param name="userId">The ID of the user making the request.</param>
        /// <returns>An error code and message from the API, if any.</returns>
        /// <seealso cref="HoldRequestCancelResult"/>
        public PapiResponse <HoldRequestActivationResult> HoldRequestReactivateOverride(string barcode, int requestId, DateTime activationDate, int userId = 1)
        {
            var xml = HoldRequestHelper.BuildActivationXml(userId, activationDate);
            var url = $"/PAPIService/REST/public/v1/1033/100/1/patron/{barcode}/holdrequests/{requestId}/active";

            return(OverrideExecute <HoldRequestActivationResult>(HttpMethod.Put, url, body: xml));
        }
Example #3
0
        /// <summary>
        /// Places a hold request on the Bibliographic Record for the Patron as supplied in the HoldRequestCreateParams object. This method places the hold as a staff member.
        /// </summary>
        /// <param name="holdParams">The object containing all of the possible options for creating the hold request.</param>
        /// <returns>An object containing the hold request creation result.</returns>
        /// <seealso cref="HoldRequestCreateParams"/>
        /// <seealso cref="HoldRequestResult"/>
        public PapiResponse <HoldRequestResult> PatronHoldRequestCreate(HoldRequestCreateParams holdParams)
        {
            Require.Argument("PatronID", holdParams.PatronID);
            Require.Argument("BibID", holdParams.BibID);

            string xml = HoldRequestHelper.BuildHoldRequestCreateXml(holdParams);

            var url = "/PAPIService/REST/public/v1/1033/100/1/holdrequest";

            return(OverrideExecute <HoldRequestResult>(HttpMethod.Post, url, body: xml));
        }