2023-06-08 10:01:26 +00:00
|
|
|
using Elsa.Samples.AspNet.Onboarding.Web.Data;
|
|
|
|
|
using Elsa.Samples.AspNet.Onboarding.Web.Entities;
|
|
|
|
|
using Elsa.Samples.AspNet.Onboarding.Web.Models;
|
2024-08-14 19:42:46 +00:00
|
|
|
using Elsa.Samples.AspNet.Onboarding.Web.Services;
|
2023-04-23 18:03:52 +00:00
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
2023-06-08 10:01:26 +00:00
|
|
|
namespace Elsa.Samples.AspNet.Onboarding.Web.Controllers;
|
2023-04-23 18:03:52 +00:00
|
|
|
|
|
|
|
|
[ApiController]
|
|
|
|
|
[Route("api/webhooks")]
|
2024-08-14 19:42:46 +00:00
|
|
|
public class WebhookController(OnboardingDbContext dbContext, ElsaClient elsaClient) : Controller
|
2023-04-23 18:03:52 +00:00
|
|
|
{
|
|
|
|
|
[HttpPost("run-task")]
|
2024-08-14 19:42:46 +00:00
|
|
|
public async Task<IActionResult> RunTask(WebhookEvent webhookEvent, CancellationToken cancellationToken)
|
2023-04-23 18:03:52 +00:00
|
|
|
{
|
|
|
|
|
var payload = webhookEvent.Payload;
|
|
|
|
|
var taskPayload = payload.TaskPayload;
|
|
|
|
|
|
2024-08-14 19:42:46 +00:00
|
|
|
var result = new
|
2023-04-23 18:03:52 +00:00
|
|
|
{
|
2024-08-14 19:42:46 +00:00
|
|
|
Magic = Random.Shared.NextDouble()
|
2023-04-23 18:03:52 +00:00
|
|
|
};
|
2024-08-14 19:42:46 +00:00
|
|
|
await elsaClient.ReportTaskCompletedAsync(webhookEvent.Payload.TaskId, result, cancellationToken);
|
|
|
|
|
|
|
|
|
|
// var employee = taskPayload.Employee;
|
|
|
|
|
//
|
|
|
|
|
// var task = new OnboardingTask
|
|
|
|
|
// {
|
|
|
|
|
// ProcessId = payload.WorkflowInstanceId,
|
|
|
|
|
// ExternalId = payload.TaskId,
|
|
|
|
|
// Name = payload.TaskName,
|
|
|
|
|
// Description = taskPayload.Description,
|
|
|
|
|
// EmployeeEmail = employee.Email,
|
|
|
|
|
// EmployeeName = employee.Name,
|
|
|
|
|
// CreatedAt = DateTimeOffset.Now
|
|
|
|
|
// };
|
|
|
|
|
//
|
|
|
|
|
// await dbContext.Tasks.AddAsync(task);
|
|
|
|
|
// await dbContext.SaveChangesAsync();
|
2023-04-23 18:03:52 +00:00
|
|
|
|
|
|
|
|
return Ok();
|
|
|
|
|
}
|
2023-04-25 13:27:16 +00:00
|
|
|
}
|