Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ACS JobRouter] DPG Models #38868

Merged
merged 24 commits into from
Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
4eb3310
missing usage of Azure.Etag in RouterQueueItem
sarkar-rajarshi Jul 12, 2023
095142a
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Jul 13, 2023
0532493
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Jul 19, 2023
e791539
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Jul 25, 2023
fee3243
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Aug 9, 2023
ee13261
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Aug 9, 2023
7966e09
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Aug 21, 2023
ff9c854
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Sep 1, 2023
4595a55
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Sep 14, 2023
728c11e
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Sep 27, 2023
7d2b6ac
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-net
sarkar-rajarshi Oct 16, 2023
5df6293
add tsp-location
sarkar-rajarshi Sep 14, 2023
f5fef13
dpg models initial commit
sarkar-rajarshi Sep 20, 2023
60762ad
update commit
sarkar-rajarshi Sep 27, 2023
ea073ab
all Serialize methods added
sarkar-rajarshi Sep 28, 2023
f4221c3
auth policy modified to new generated code
sarkar-rajarshi Sep 29, 2023
0dbebb6
fix errors and update readme
sarkar-rajarshi Oct 11, 2023
ec52581
fix tests
sarkar-rajarshi Oct 12, 2023
5a14033
Update with more fixes
sarkar-rajarshi Oct 15, 2023
46127fc
more fixess
sarkar-rajarshi Oct 16, 2023
7ed7df0
update assets
sarkar-rajarshi Oct 16, 2023
ab9882d
update assests.json
sarkar-rajarshi Oct 16, 2023
04dc9c1
update api def
sarkar-rajarshi Oct 16, 2023
d3e600e
more fixes
sarkar-rajarshi Oct 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 3 additions & 4 deletions sdk/communication/Azure.Communication.JobRouter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ To create a new Communication Service, you can use the [Azure Portal][communicat
### Using statements
```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

### Create a JobRouter Client
Expand Down Expand Up @@ -98,7 +97,7 @@ Response<DistributionPolicy> distributionPolicy = await routerAdministrationClie
### Queue
Next, we can create the queue.
```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_CreateQueue_Async
Response<Models.RouterQueue> queue = await routerAdministrationClient.CreateQueueAsync(
Response<RouterQueue> queue = await routerAdministrationClient.CreateQueueAsync(
new CreateQueueOptions(
queueId: "queue-1",
distributionPolicyId: distributionPolicy.Value.Id)
Expand Down Expand Up @@ -175,7 +174,7 @@ foreach (EventGridEvent egEvent in egEvents)
However, we could also wait a few seconds and then query the worker directly against the JobRouter API to see if an offer was issued to it.
```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_QueryWorker_Async
Response<RouterWorker> result = await routerClient.GetWorkerAsync(worker.Value.Id);
foreach (Models.RouterJobOffer? offer in result.Value.Offers)
foreach (RouterJobOffer? offer in result.Value.Offers)
{
Console.WriteLine($"Worker {worker.Value.Id} has an active offer for job {offer.JobId}");
}
Expand All @@ -185,7 +184,7 @@ foreach (Models.RouterJobOffer? offer in result.Value.Offers)
Once a worker receives an offer, it can take two possible actions: accept or decline. We are going to accept the offer.
```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_AcceptOffer_Async
// fetching the offer id
Models.RouterJobOffer jobOffer = result.Value.Offers.First<RouterJobOffer>(x => x.JobId == job.Value.Id);
RouterJobOffer jobOffer = result.Value.Offers.First<RouterJobOffer>(x => x.JobId == job.Value.Id);

string offerId = jobOffer.OfferId; // `OfferId` can be retrieved directly from consuming event from Event grid

Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "net",
"TagPrefix": "net/communication/Azure.Communication.JobRouter",
"Tag": "net/communication/Azure.Communication.JobRouter_b53dd17d6a"
"Tag": "net/communication/Azure.Communication.JobRouter_33a06c6ea8"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -82,17 +81,6 @@ Console.WriteLine($"Classification policy successfully update with new prioritiz

*NOTE: It is not possible to update a single QueueSelectorAttachment or WorkerSelectorAttachment. In order to add QueueSelectorAttachment to an already existing set of QueueSelectorAttachment(s), either specify all the QueueSelectorAttachment(s) again OR perform a Get operation first to retrieve the current value of the classification policy (preferred).

## Remove from classification policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateClassificationPolicyRemoveProp
Response updatedClassificationPolicyWithoutName = routerAdministrationClient.UpdateClassificationPolicy(classificationPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<ClassificationPolicy> queriedClassificationPolicyWithoutName = routerAdministrationClient.GetClassificationPolicy(classificationPolicyId);

Console.WriteLine($"Classification policy successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedClassificationPolicyWithoutName.Value.Name)}");
```

## List classification policies

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetClassificationPolicies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -82,16 +81,6 @@ Console.WriteLine($"Classification policy successfully update with new prioritiz

*NOTE: It is not possible to update a single QueueSelectorAttachment or WorkerSelectorAttachment. In order to add QueueSelectorAttachment to an already existing set of QueueSelectorAttachment(s), either specify all the QueueSelectorAttachment(s) again OR perform a Get operation first to retrieve the current value of the classification policy (preferred).

## Remove from classification policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateClassificationPolicyRemoveProp_Async
Response updatedClassificationPolicyWithoutName = await routerAdministrationClient.UpdateClassificationPolicyAsync(classificationPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<ClassificationPolicy> queriedClassificationPolicyWithoutName = await routerAdministrationClient.GetClassificationPolicyAsync(classificationPolicyId);

Console.WriteLine($"Classification policy successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedClassificationPolicyWithoutName.Value.Name)}");
```

## List classification policies

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -55,17 +54,6 @@ Response<DistributionPolicy> updatedDistributionPolicy = routerAdministrationCli
Console.WriteLine($"Distribution policy successfully update with new distribution mode. Mode Type: {updatedDistributionPolicy.Value.Mode.Kind}");
```

## Remove from distribution policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateDistributionPolicyRemoveProp
Response updatedDistributionPolicyWithoutName = routerAdministrationClient.UpdateDistributionPolicy(distributionPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<DistributionPolicy> queriedDistributionPolicyWithoutName = routerAdministrationClient.GetDistributionPolicy(distributionPolicyId);

Console.WriteLine($"Distribution policy successfully updated: 'Name' has been removed. Status: Status: {string.IsNullOrWhiteSpace(queriedDistributionPolicyWithoutName.Value.Name)}");
```

## List distribution policies

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetDistributionPolicies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -55,17 +54,6 @@ Response<DistributionPolicy> updatedDistributionPolicy = await routerAdministrat
Console.WriteLine($"Distribution policy successfully update with new distribution mode. Mode Type: {updatedDistributionPolicy.Value.Mode.Kind}");
```

## Remove from distribution policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateDistributionPolicyRemoveProp_Async
Response updatedDistributionPolicyWithoutName = await routerAdministrationClient.UpdateDistributionPolicyAsync(distributionPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<DistributionPolicy> queriedDistributionPolicyWithoutName = await routerAdministrationClient.GetDistributionPolicyAsync(distributionPolicyId);

Console.WriteLine($"Distribution policy successfully updated: 'Name' has been removed. Status: Status: {string.IsNullOrWhiteSpace(queriedDistributionPolicyWithoutName.Value.Name)}");
```

## List distribution policies

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetDistributionPolicies_Async
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -143,18 +142,6 @@ Console.WriteLine($"`EscalateJobOnWaitTimeExceededTrigger` rule has been success
Console.WriteLine($"`EscalateJobOnWaitTimeExceededTrigger2Min` rule has been successfully added: {updateExceptionPolicy.Value.ExceptionRules.ContainsKey("EscalateJobOnWaitTimeExceededTrigger2Min")}");
```

## Remove from exception policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateExceptionPolicyRemoveProp
// we are going to remove Name
Response updateExceptionPolicyWithoutName = routerClient.UpdateExceptionPolicy(exceptionPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<ExceptionPolicy> queriedExceptionPolicyWithoutName = routerClient.GetExceptionPolicy(exceptionPolicyId);

Console.WriteLine($"Exception policy successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedExceptionPolicyWithoutName.Value.Name)}");
```

## List exception policies

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetExceptionPolicies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand Down Expand Up @@ -143,18 +142,6 @@ Console.WriteLine($"`EscalateJobOnWaitTimeExceededTrigger` rule has been success
Console.WriteLine($"`EscalateJobOnWaitTimeExceededTrigger2Min` rule has been successfully added: {updateExceptionPolicy.Value.ExceptionRules.ContainsKey("EscalateJobOnWaitTimeExceededTrigger2Min")}");
```

## Remove from exception policy

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateExceptionPolicyRemoveProp_Async
// we are going to remove Name
Response updateExceptionPolicyWithoutName = await routerClient.UpdateExceptionPolicyAsync(exceptionPolicyId,
RequestContent.Create(new { Name = (string?)null }));

Response<ExceptionPolicy> queriedExceptionPolicyWithoutName = await routerClient.GetExceptionPolicyAsync(exceptionPolicyId);

Console.WriteLine($"Exception policy successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedExceptionPolicyWithoutName.Value.Name)}");
```

## List exception policies

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetExceptionPolicies_Async
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand All @@ -22,7 +21,7 @@ JobRouterAdministrationClient routerAdministrationClient = new JobRouterAdminist
// set `distributionPolicyId` to an existing distribution policy
string jobQueueId = "job-queue-id";

Response<Models.RouterQueue> jobQueue = routerAdministrationClient.CreateQueue(
Response<RouterQueue> jobQueue = routerAdministrationClient.CreateQueue(
options: new CreateQueueOptions(jobQueueId, distributionPolicyId) // this is optional
{
Name = "My job queue"
Expand All @@ -34,47 +33,36 @@ Console.WriteLine($"Job queue successfully create with id: {jobQueue.Value.Id}")
## Get a job queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueue
Response<Models.RouterQueue> queriedJobQueue = routerAdministrationClient.GetQueue(jobQueueId);
Response<RouterQueue> queriedJobQueue = routerAdministrationClient.GetQueue(jobQueueId);

Console.WriteLine($"Successfully fetched queue with id: {queriedJobQueue.Value.Id}");
```

## Get queue statistics

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueueStat
Response<RouterQueueStatistics> queueStatistics = routerClient.GetQueueStatistics(queueId: jobQueueId);
Response<RouterQueueStatistics> queueStatistics = routerClient.GetQueueStatistics(jobQueueId);

Console.WriteLine($"Queue statistics successfully retrieved for queue: {JsonSerializer.Serialize(queueStatistics.Value)}");
```

## Update a job queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateGetJobQueue
Response<Models.RouterQueue> updatedJobQueue = routerAdministrationClient.UpdateQueue(
Response<RouterQueue> updatedJobQueue = routerAdministrationClient.UpdateQueue(
options: new UpdateQueueOptions(jobQueueId)
{
Labels = { ["Additional-Queue-Label"] = new LabelValue("ChatQueue") }
});
```

## Remove from queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateQueueRemoveProp
Response updatedJobQueueWithoutName = routerAdministrationClient.UpdateQueue(jobQueueId,
RequestContent.Create(new { Name = (string?)null }));

Response<Models.RouterQueue> queriedJobQueueWithoutName = routerAdministrationClient.GetQueue(jobQueueId);

Console.WriteLine($"Queue successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedJobQueueWithoutName.Value.Name)}");
```

## List job queues

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueues
Pageable<Models.RouterQueueItem> jobQueues = routerAdministrationClient.GetQueues();
foreach (Page<Models.RouterQueueItem> asPage in jobQueues.AsPages(pageSizeHint: 10))
Pageable<RouterQueueItem> jobQueues = routerAdministrationClient.GetQueues();
foreach (Page<RouterQueueItem> asPage in jobQueues.AsPages(pageSizeHint: 10))
{
foreach (Models.RouterQueueItem? policy in asPage.Values)
foreach (RouterQueueItem? policy in asPage.Values)
{
Console.WriteLine($"Listing job queue with id: {policy.Queue.Id}");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand All @@ -22,7 +21,7 @@ JobRouterAdministrationClient routerAdministrationClient = new JobRouterAdminist
// set `distributionPolicyId` to an existing distribution policy
string jobQueueId = "job-queue-id";

Response<Models.RouterQueue> jobQueue = await routerAdministrationClient.CreateQueueAsync(
Response<RouterQueue> jobQueue = await routerAdministrationClient.CreateQueueAsync(
options: new CreateQueueOptions(jobQueueId, distributionPolicyId)
{
Name = "My job queue"
Expand All @@ -34,15 +33,15 @@ Console.WriteLine($"Job queue successfully create with id: {jobQueue.Value.Id}")
## Get a job queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueue_Async
Response<Models.RouterQueue> queriedJobQueue = await routerAdministrationClient.GetQueueAsync(jobQueueId);
Response<RouterQueue> queriedJobQueue = await routerAdministrationClient.GetQueueAsync(jobQueueId);

Console.WriteLine($"Successfully fetched queue with id: {queriedJobQueue.Value.Id}");
```

## Get queue statistics

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueueStat_Async
Response<RouterQueueStatistics> queueStatistics = await routerClient.GetQueueStatisticsAsync(queueId: jobQueueId);
Response<RouterQueueStatistics> queueStatistics = await routerClient.GetQueueStatisticsAsync(jobQueueId);

Console.WriteLine($"Queue statistics successfully retrieved for queue: {JsonSerializer.Serialize(queueStatistics.Value)}");
```
Expand All @@ -51,31 +50,20 @@ Console.WriteLine($"Queue statistics successfully retrieved for queue: {JsonSeri
## Update a job queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateGetJobQueue_Async
Response<Models.RouterQueue> updatedJobQueue = await routerAdministrationClient.UpdateQueueAsync(
Response<RouterQueue> updatedJobQueue = await routerAdministrationClient.UpdateQueueAsync(
options: new UpdateQueueOptions(jobQueueId)
{
Labels = { ["Additional-Queue-Label"] = new LabelValue("ChatQueue") }
});
```

## Remove from queue

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateQueueRemoveProp_Async
Response updatedJobQueueWithoutName = await routerAdministrationClient.UpdateQueueAsync(jobQueueId,
RequestContent.Create(new { Name = (string?)null }));

Response<Models.RouterQueue> queriedJobQueueWithoutName = await routerAdministrationClient.GetQueueAsync(jobQueueId);

Console.WriteLine($"Queue successfully updated: 'Name' has been removed. Status: {string.IsNullOrWhiteSpace(queriedJobQueueWithoutName.Value.Name)}");
```

## List job queues

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetJobQueues_Async
AsyncPageable<Models.RouterQueueItem> jobQueues = routerAdministrationClient.GetQueuesAsync();
await foreach (Page<Models.RouterQueueItem> asPage in jobQueues.AsPages(pageSizeHint: 10))
AsyncPageable<RouterQueueItem> jobQueues = routerAdministrationClient.GetQueuesAsync();
await foreach (Page<RouterQueueItem> asPage in jobQueues.AsPages(pageSizeHint: 10))
{
foreach (Models.RouterQueueItem? policy in asPage.Values)
foreach (RouterQueueItem? policy in asPage.Values)
{
Console.WriteLine($"Listing job queue with id: {policy.Queue.Id}");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_UsingStatements
using Azure.Communication.JobRouter;
using Azure.Communication.JobRouter.Models;
```

## Create a client
Expand All @@ -24,7 +23,7 @@ JobRouterAdministrationClient routerAdministrationClient = new JobRouterAdminist
Response<DistributionPolicy> distributionPolicy =
routerAdministrationClient.CreateDistributionPolicy(new CreateDistributionPolicyOptions("distribution-policy-id", TimeSpan.FromMinutes(5), new LongestIdleMode()));

Response<Models.RouterQueue> jobQueue = routerAdministrationClient.CreateQueue(new CreateQueueOptions("job-queue-id", distributionPolicy.Value.Id));
Response<RouterQueue> jobQueue = routerAdministrationClient.CreateQueue(new CreateQueueOptions("job-queue-id", distributionPolicy.Value.Id));

string jobId = "router-job-id";

Expand Down Expand Up @@ -78,7 +77,7 @@ Console.WriteLine($"Successfully retrieved job with id: {queriedJob.Value.Id}");
## Get a job position

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_GetRouterJobPosition
Response<Models.RouterJobPositionDetails> jobPositionDetails = routerClient.GetQueuePosition(jobId);
Response<RouterJobPositionDetails> jobPositionDetails = routerClient.GetQueuePosition(jobId);

Console.WriteLine($"Job position for id `{jobPositionDetails.Value.JobId}` successfully retrieved. JobPosition: {jobPositionDetails.Value.Position}");
```
Expand All @@ -96,21 +95,10 @@ Response<RouterJob> updatedJob = routerClient.UpdateJob(
Console.WriteLine($"Job has been successfully updated. Current value of channelReference: {updatedJob.Value.ChannelReference}"); // "45678"
```

## Remove from job

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_UpdateJobRemoveProp
Response updatedJobWithoutChannelReference = routerClient.UpdateJob(jobId,
RequestContent.Create(new { ChannelReference = (string?)null }));

Response<RouterJob> queriedJobWithoutChannelReference = routerClient.GetJob(jobId);

Console.WriteLine($"Job has been successfully updated. 'ChannelReference' has been removed: {string.IsNullOrWhiteSpace(queriedJobWithoutChannelReference.Value.ChannelReference)}");
```

## Reclassify a job

```C# Snippet:Azure_Communication_JobRouter_Tests_Samples_Crud_ReclassifyRouterJob
Response reclassifyJob = routerClient.ReclassifyJob(jobWithCpId);
Response reclassifyJob = routerClient.ReclassifyJob(jobWithCpId, CancellationToken.None);
```

## Accept a job offer
Expand All @@ -135,7 +123,7 @@ while (routerClient.GetWorker(worker.Value.Id).Value.Offers.All(offer => offer.J

Response<RouterWorker> queriedWorker = routerClient.GetWorker(worker.Value.Id);

Models.RouterJobOffer? issuedOffer = queriedWorker.Value.Offers.First<RouterJobOffer>(offer => offer.JobId == jobId);
RouterJobOffer? issuedOffer = queriedWorker.Value.Offers.First<RouterJobOffer>(offer => offer.JobId == jobId);

Console.WriteLine($"Worker has been successfully issued to worker with offerId: {issuedOffer.OfferId} and offer expiry time: {issuedOffer.ExpiresAt}");

Expand Down
Loading