TasksTracker.TasksManager.Backend.Api/Controllers/HealthController.cs (41 lines of code) (raw):

using Dapr.Client; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using TasksTracker.TasksManager.Backend.Api.Services; namespace TasksTracker.TasksManager.Backend.Api.Controllers { [Route("api/health")] [ApiController] public class HealthController : ControllerBase { private readonly ILogger<HealthController> _logger; private readonly ITasksManager _tasksManager; public HealthController(ILogger<HealthController> logger, ITasksManager tasksManager) { _logger = logger; _tasksManager = tasksManager; } [HttpGet("Readiness")] public async Task<IActionResult> Readiness() { try { string? _instanceId = Environment.GetEnvironmentVariable("HOSTNAME"); _logger.LogInformation("Readiness::Invoked readiness ednpoint by instance {0}", _instanceId); _logger.LogInformation("Readiness::Testing state store availability by creating new dummy task by instance {0}", _instanceId); var taskId = await _tasksManager.CreateNewTask("Health Readiness Task", "Readiness Prob", "temp@mail.com", DateTime.UtcNow.AddDays(1)); _logger.LogInformation("Readiness::Deleting dummy task from state store by instance {0}. Deleted Task Id {1}", _instanceId, taskId); await _tasksManager.DeleteTask(taskId); } catch (Exception e) { _logger.LogCritical(e, "Exception while invoking Reasiness prob"); return new StatusCodeResult(StatusCodes.Status503ServiceUnavailable); } return Ok(); } } }