elsa-core/samples/aspnet/Elsa.Samples.AspNet.Onboarding.Web/Controllers/WebhookController.cs

42 lines
1.2 KiB
C#
Raw Normal View History

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;
using Microsoft.AspNetCore.Mvc;
2023-06-08 10:01:26 +00:00
namespace Elsa.Samples.AspNet.Onboarding.Web.Controllers;
[ApiController]
[Route("api/webhooks")]
public class WebhookController : Controller
{
private readonly OnboardingDbContext _dbContext;
public WebhookController(OnboardingDbContext dbContext)
{
_dbContext = dbContext;
}
[HttpPost("run-task")]
public async Task<IActionResult> RunTask(WebhookEvent webhookEvent)
{
var payload = webhookEvent.Payload;
var taskPayload = payload.TaskPayload;
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();
return Ok();
}
2023-04-25 13:27:16 +00:00
}