forked from microsoft/semantic-kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCounterWithCloudSubscribersController.cs
57 lines (47 loc) · 2.27 KB
/
CounterWithCloudSubscribersController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Copyright (c) Microsoft. All rights reserved.
using Microsoft.AspNetCore.Mvc;
using Microsoft.Graph;
using ProcessWithCloudEvents.Processes;
namespace ProcessWithCloudEvents.Controllers;
[ApiController]
[Route("[controller]")]
public class CounterWithCloudSubscribersController : CounterBaseController
{
private readonly ILogger<CounterWithCloudStepsController> _logger;
public CounterWithCloudSubscribersController(ILogger<CounterWithCloudStepsController> logger, GraphServiceClient graphClient)
{
this._logger = logger;
this.Kernel = this.BuildKernel();
var serviceProvider = new ServiceCollection()
.AddSingleton<GraphServiceClient>(graphClient)
.BuildServiceProvider();
this.Process = this.InitializeProcess(RequestCounterProcess.CreateProcessWithProcessSubscriber(serviceProvider));
}
/// <inheritdoc/>
[HttpGet("increase", Name = "IncreaseCounterWithCloudSubscribers")]
public override async Task<int> IncreaseCounterAsync()
{
var eventName = RequestCounterProcess.GetEventName(RequestCounterProcess.CounterProcessEvents.IncreaseCounterRequest);
var runningProcess = await this.StartProcessWithEventAsync(eventName);
var counterState = this.GetCounterState(runningProcess);
return counterState?.State?.Counter ?? -1;
}
/// <inheritdoc/>
[HttpGet("decrease", Name = "DecreaseCounterWithCloudSubscribers")]
public override async Task<int> DecreaseCounterAsync()
{
var eventName = RequestCounterProcess.GetEventName(RequestCounterProcess.CounterProcessEvents.DecreaseCounterRequest);
var runningProcess = await this.StartProcessWithEventAsync(eventName);
var counterState = this.GetCounterState(runningProcess);
return counterState?.State?.Counter ?? -1;
}
/// <inheritdoc/>
[HttpGet("reset", Name = "ResetCounterWithCloudSubscribers")]
public override async Task<int> ResetCounterAsync()
{
var eventName = RequestCounterProcess.GetEventName(RequestCounterProcess.CounterProcessEvents.ResetCounterRequest);
var runningProcess = await this.StartProcessWithEventAsync(eventName);
var counterState = this.GetCounterState(runningProcess);
return counterState?.State?.Counter ?? -1;
}
}