TasksTracker.WebPortal.Frontend.Ui/Pages/Tasks/Create.cshtml.cs (37 lines of code) (raw):

using Dapr.Client; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using TasksTracker.WebPortal.Frontend.Ui.Pages.Tasks.Models; namespace TasksTracker.WebPortal.Frontend.Ui.Pages.Tasks { public class CreateModel : PageModel { private readonly IHttpClientFactory _httpClientFactory; private readonly DaprClient _daprClient; public CreateModel(IHttpClientFactory httpClientFactory, DaprClient daprClient) { _httpClientFactory = httpClientFactory; _daprClient = daprClient; } public IActionResult OnGet() { return Page(); } [BindProperty] public TaskAddModel TaskAdd { get; set; } public async Task<IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return Page(); } if (TaskAdd != null) { var createdBy = Request.Cookies["TasksCreatedByCookie"]; TaskAdd.TaskCreatedBy = createdBy; // direct svc to svc http request // var httpClient = _httpClientFactory.CreateClient("BackEndApiExternal"); // var result = await httpClient.PostAsJsonAsync("api/tasks/", TaskAdd); //Dapr SideCar Invocation await _daprClient.InvokeMethodAsync(HttpMethod.Post, "tasksmanager-backend-api", $"api/tasks", TaskAdd); } return RedirectToPage("./Index"); } } }