|
| 1 | +using ApiSdk.Models.Microsoft.Graph; |
| 2 | +using Microsoft.Kiota.Abstractions; |
| 3 | +using Microsoft.Kiota.Abstractions.Serialization; |
| 4 | +using System; |
| 5 | +using System.Collections.Generic; |
| 6 | +using System.CommandLine; |
| 7 | +using System.CommandLine.Invocation; |
| 8 | +using System.IO; |
| 9 | +using System.Linq; |
| 10 | +using System.Text; |
| 11 | +using System.Threading; |
| 12 | +using System.Threading.Tasks; |
| 13 | +namespace ApiSdk.Education.Users.Item.Assignments.Item.Publish { |
| 14 | + /// <summary>Builds and executes requests for operations under \education\users\{educationUser-id}\assignments\{educationAssignment-id}\microsoft.graph.publish</summary> |
| 15 | + public class PublishRequestBuilder { |
| 16 | + /// <summary>Path parameters for the request</summary> |
| 17 | + private Dictionary<string, object> PathParameters { get; set; } |
| 18 | + /// <summary>The request adapter to use to execute the requests.</summary> |
| 19 | + private IRequestAdapter RequestAdapter { get; set; } |
| 20 | + /// <summary>Url template to use to build the URL for the current request builder</summary> |
| 21 | + private string UrlTemplate { get; set; } |
| 22 | + /// <summary> |
| 23 | + /// Invoke action publish |
| 24 | + /// </summary> |
| 25 | + public Command BuildPostCommand() { |
| 26 | + var command = new Command("post"); |
| 27 | + command.Description = "Invoke action publish"; |
| 28 | + // Create options for all the parameters |
| 29 | + var educationUserIdOption = new Option<string>("--educationuser-id", description: "key: id of educationUser"); |
| 30 | + educationUserIdOption.IsRequired = true; |
| 31 | + command.AddOption(educationUserIdOption); |
| 32 | + var educationAssignmentIdOption = new Option<string>("--educationassignment-id", description: "key: id of educationAssignment"); |
| 33 | + educationAssignmentIdOption.IsRequired = true; |
| 34 | + command.AddOption(educationAssignmentIdOption); |
| 35 | + command.Handler = CommandHandler.Create<string, string>(async (educationUserId, educationAssignmentId) => { |
| 36 | + var requestInfo = CreatePostRequestInformation(q => { |
| 37 | + }); |
| 38 | + var result = await RequestAdapter.SendAsync<PublishResponse>(requestInfo); |
| 39 | + // Print request output. What if the request has no return? |
| 40 | + using var serializer = RequestAdapter.SerializationWriterFactory.GetSerializationWriter("application/json"); |
| 41 | + serializer.WriteObjectValue(null, result); |
| 42 | + using var content = serializer.GetSerializedContent(); |
| 43 | + using var reader = new StreamReader(content); |
| 44 | + var strContent = await reader.ReadToEndAsync(); |
| 45 | + Console.Write(strContent + "\n"); |
| 46 | + }); |
| 47 | + return command; |
| 48 | + } |
| 49 | + /// <summary> |
| 50 | + /// Instantiates a new PublishRequestBuilder and sets the default values. |
| 51 | + /// <param name="pathParameters">Path parameters for the request</param> |
| 52 | + /// <param name="requestAdapter">The request adapter to use to execute the requests.</param> |
| 53 | + /// </summary> |
| 54 | + public PublishRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) { |
| 55 | + _ = pathParameters ?? throw new ArgumentNullException(nameof(pathParameters)); |
| 56 | + _ = requestAdapter ?? throw new ArgumentNullException(nameof(requestAdapter)); |
| 57 | + UrlTemplate = "{+baseurl}/education/users/{educationUser_id}/assignments/{educationAssignment_id}/microsoft.graph.publish"; |
| 58 | + var urlTplParams = new Dictionary<string, object>(pathParameters); |
| 59 | + PathParameters = urlTplParams; |
| 60 | + RequestAdapter = requestAdapter; |
| 61 | + } |
| 62 | + /// <summary> |
| 63 | + /// Invoke action publish |
| 64 | + /// <param name="h">Request headers</param> |
| 65 | + /// <param name="o">Request options</param> |
| 66 | + /// </summary> |
| 67 | + public RequestInformation CreatePostRequestInformation(Action<IDictionary<string, string>> h = default, IEnumerable<IRequestOption> o = default) { |
| 68 | + var requestInfo = new RequestInformation { |
| 69 | + HttpMethod = HttpMethod.POST, |
| 70 | + UrlTemplate = UrlTemplate, |
| 71 | + PathParameters = PathParameters, |
| 72 | + }; |
| 73 | + h?.Invoke(requestInfo.Headers); |
| 74 | + requestInfo.AddRequestOptions(o?.ToArray()); |
| 75 | + return requestInfo; |
| 76 | + } |
| 77 | + /// <summary> |
| 78 | + /// Invoke action publish |
| 79 | + /// <param name="cancellationToken">Cancellation token to use when cancelling requests</param> |
| 80 | + /// <param name="h">Request headers</param> |
| 81 | + /// <param name="o">Request options</param> |
| 82 | + /// <param name="responseHandler">Response handler to use in place of the default response handling provided by the core service</param> |
| 83 | + /// </summary> |
| 84 | + public async Task<PublishResponse> PostAsync(Action<IDictionary<string, string>> h = default, IEnumerable<IRequestOption> o = default, IResponseHandler responseHandler = default, CancellationToken cancellationToken = default) { |
| 85 | + var requestInfo = CreatePostRequestInformation(h, o); |
| 86 | + return await RequestAdapter.SendAsync<PublishResponse>(requestInfo, responseHandler, cancellationToken); |
| 87 | + } |
| 88 | + /// <summary>Union type wrapper for classes educationAssignment</summary> |
| 89 | + public class PublishResponse : IParsable { |
| 90 | + /// <summary>Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.</summary> |
| 91 | + public IDictionary<string, object> AdditionalData { get; set; } |
| 92 | + /// <summary>Union type representation for type educationAssignment</summary> |
| 93 | + public EducationAssignment EducationAssignment { get; set; } |
| 94 | + /// <summary> |
| 95 | + /// Instantiates a new publishResponse and sets the default values. |
| 96 | + /// </summary> |
| 97 | + public PublishResponse() { |
| 98 | + AdditionalData = new Dictionary<string, object>(); |
| 99 | + } |
| 100 | + /// <summary> |
| 101 | + /// The deserialization information for the current model |
| 102 | + /// </summary> |
| 103 | + public IDictionary<string, Action<T, IParseNode>> GetFieldDeserializers<T>() { |
| 104 | + return new Dictionary<string, Action<T, IParseNode>> { |
| 105 | + {"educationAssignment", (o,n) => { (o as PublishResponse).EducationAssignment = n.GetObjectValue<EducationAssignment>(); } }, |
| 106 | + }; |
| 107 | + } |
| 108 | + /// <summary> |
| 109 | + /// Serializes information the current object |
| 110 | + /// <param name="writer">Serialization writer to use to serialize this model</param> |
| 111 | + /// </summary> |
| 112 | + public void Serialize(ISerializationWriter writer) { |
| 113 | + _ = writer ?? throw new ArgumentNullException(nameof(writer)); |
| 114 | + writer.WriteObjectValue<EducationAssignment>("educationAssignment", EducationAssignment); |
| 115 | + writer.WriteAdditionalData(AdditionalData); |
| 116 | + } |
| 117 | + } |
| 118 | + } |
| 119 | +} |
0 commit comments