/// <summary> /// Performs validation and business logic checks on the RemoveCourseCallNumbersRequest values /// </summary> /// <param name="request"><see cref="RemoveCourseCallNumbersRequest">object</see></param> /// <exception cref="ArgumentNullException">Thrown when a required value is not set in the <see cref="RemoveCourseCallNumbersRequest">object</see></exception> /// <exception cref="ArgumentException">Thrown when there is a conflict between the values in the <see cref="RemoveCourseCallNumbersRequest">object</see></exception> private static void ValidateRemoveCourseCallNumbersRequest(RemoveCourseCallNumbersRequest request) { // Perform a Parameter Validation and Business Logice Check on the Request if (request.ClientString == null) throw new ArgumentNullException("The ClientString value is required. Please correct and try the reqeust again."); else if (request.DestinationCourseCallNumber == null && request.DestinationCourseId == null) throw new ArgumentNullException("Either a DestinationCourseCallNumber or DestinationCourseId value is required. Please correct and try the request again."); else if (request.RemoveCourseCallNumbers == null) throw new ArgumentNullException("The RemoveCourseCallNumbers value is required. Please correct and try the request again."); else if (request.DestinationCourseCallNumber != null && request.DestinationCourseId != null) throw new ArgumentException("The DestinationCourseCallNumber and DestinationCourseId values are mutually exclusive. Only set one of the values for a given Destination Course. Please correct and try the request again."); }
/// <summary> /// Creates the XML payload for the RemoveCourseCallNumbers Course API Request /// </summary> /// <param name="request"><see cref="RemoveCoruseCallNumbersRequest">object</see></param> /// <returns><see cref="API.CallNumbersRemoveRequest"/>object</returns> private API.CallNumbersRemoveRequest SetRemoveCourseCallNumbersRequest(RemoveCourseCallNumbersRequest request) { // Initialize and Set the RemoveCourseCallNumbersRequest API.CallNumbersRemoveRequest removeCourseCallNumbers = new API.CallNumbersRemoveRequest(); removeCourseCallNumbers.ClientString = request.ClientString; removeCourseCallNumbers.DestinationCourseIdentifier = new API.CourseIdentifier(); // If removing more then 1 CallNumber set CourseCallNumbers object accordingly if (request.RemoveCourseCallNumbers.Length > 1) { // Initialize the CourseCallNumbers Object removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers = new API.CourseCallNumber[request.RemoveCourseCallNumbers.Length]; // Loop through the Call Numbers in the Request for (int i = 0; i < request.RemoveCourseCallNumbers.Length; i++) { removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers[i] = new API.CourseCallNumber(); removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers[i].ClientCallNumber = request.RemoveCourseCallNumbers[i]; } } else { // Only 1 CallNumber to remove, set accordingly removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers = new API.CourseCallNumber[1]; removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers[0] = new API.CourseCallNumber(); removeCourseCallNumbers.DestinationCourseIdentifier.CourseCallNumbers[0].ClientCallNumber = request.RemoveCourseCallNumbers[0]; } // Set the DestinationIdentifier accordingly if (request.DestinationCourseId != null) { removeCourseCallNumbers.DestinationCourseIdentifier.ID = request.DestinationCourseId; removeCourseCallNumbers.DestinationCourseIdentifier.MappingType = API.MappedIDType.CourseID; } else { removeCourseCallNumbers.DestinationCourseIdentifier.ID = request.DestinationCourseCallNumber; removeCourseCallNumbers.DestinationCourseIdentifier.MappingType = API.MappedIDType.CallNumber; } return removeCourseCallNumbers; }
/// <summary> /// Generates a RemoveCourseCallNumbers Course API Request /// </summary> /// <param name="request"><see cref="RevmoveCourseCallNumbersRequest">object</see></param> /// <returns><see cref="Response"/>object</returns> public Response RemoveCourseCallNumbers(RemoveCourseCallNumbersRequest request) { API.CallNumbersRemoveRequest removeCourseCallNumbers = null; Response response = null; try { // Validate the Request Object ValidateRemoveCourseCallNumbersRequest(request); // Intialize and Set the RemoveCourseCallNumbersRequest removeCourseCallNumbers = SetRemoveCourseCallNumbersRequest(request); // Build the Response object from the SOAP response response = ReadRemoveCourseCallNumbersResponse(removeCourseCallNumbers); } catch (Exception ex) { Logger.Error("Exception from RemoveCourseCallNumbers: ", ex); throw; } finally { if (this.courseAPI != null) this.courseAPI.Close(); } return response; }