public async Task <PrintTaskTrigger> CreateTaskTriggerAsync(string taskDefinitionId, string printerId) { /* * STEP 1: Create a PrintTaskTrigger object for JobStarted Event and bind it to the the task definition. */ var taskTrigger = new PrintTaskTrigger { Event = PrintEvent.JobStarted, AdditionalData = new Dictionary <string, object> { { "*****@*****.**", "https://graph.microsoft.com/v1.0/print/taskDefinitions/" + taskDefinitionId } } }; /* * STEP 2: Create Task Trigger Graph Request Object * This creates a hook in the printJob lifecycle when it's submitted to the printerId */ var createTaskTriggerRequest = this.graphAdminClient.Print.Printers[printerId].TaskTriggers .Request(); /* * STEP 3: Use Add method on request object to create the task trigger */ return(await createTaskTriggerRequest.AddAsync(taskTrigger)); }
/// <summary> /// Update the navigation property taskTriggers in print /// <param name="body"></param> /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param> /// </summary> public RequestInformation CreatePatchRequestInformation(PrintTaskTrigger body, Action <PrintTaskTriggerItemRequestBuilderPatchRequestConfiguration> requestConfiguration = default) { _ = body ?? throw new ArgumentNullException(nameof(body)); var requestInfo = new RequestInformation { HttpMethod = Method.PATCH, UrlTemplate = UrlTemplate, PathParameters = PathParameters, }; requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); if (requestConfiguration != null) { var requestConfig = new PrintTaskTriggerItemRequestBuilderPatchRequestConfiguration(); requestConfiguration.Invoke(requestConfig); requestInfo.AddRequestOptions(requestConfig.Options); requestInfo.AddHeaders(requestConfig.Headers); } return(requestInfo); }