using Newtonsoft.Json; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); var jobs = new List(); var httpClient = new HttpClient(); app.MapGet("/getJobs/{clientId}", (string clientId) => { var secondWorkerResponse = httpClient.GetStringAsync("http://worker-1:8080/getClient/" + clientId).Result; Client client = JsonConvert.DeserializeObject(secondWorkerResponse); if (secondWorkerResponse == null) return Results.NotFound(new { message = "Клиент не найден" }); List clientJobs = jobs.Where(x => x.ClientId == clientId).ToList(); return Results.Json(clientJobs); }) .WithName("GetJobs"); app.MapGet("getJob/{id}", (string id) => { Job? job = jobs.FirstOrDefault(x => x.Id == id); if (job == null) return Results.NotFound(new { message = "Задача не найдена" }); return Results.Json(job); }) .WithName("GetJob"); app.MapPost("createJob", (JobViewModel jobVM) => { var secondWorkerResponse = httpClient.GetStringAsync("http://worker-1:8080/getClient/" + jobVM.ClientId).Result; Client client = JsonConvert.DeserializeObject(secondWorkerResponse); if (secondWorkerResponse == null) return Results.NotFound(new { message = "Клиент не найден" }); Job job = new Job { Id = Guid.NewGuid().ToString(), DeadLine = jobVM.DeadLine, Description = jobVM.Description, Client = client, ClientId = jobVM.ClientId, Title = jobVM.Title, }; jobs.Add(job); return Results.Json(job); }) .WithName("CreateJob"); app.MapPut("updateJob/{id}", (string id, JobViewModel data) => { Job? job = jobs.FirstOrDefault(x => x.Id == id); if (job == null) return Results.NotFound(new { message = "Задача не найдена" }); var secondWorkerResponse = httpClient.GetStringAsync("http://worker-1:8080/getClient/" + data.ClientId).Result; Client client = JsonConvert.DeserializeObject(secondWorkerResponse); if (secondWorkerResponse == null) return Results.NotFound(new { message = "Клиент не найден" }); job.Title = data.Title; job.DeadLine = data.DeadLine; job.ClientId = data.ClientId; job.Client = client; job.Description = data.Description; return Results.Json(job); }) .WithName("UpdateJob"); app.MapDelete("deleteJob/{id}", (string id) => { Job? job = jobs.FirstOrDefault(x => x.Id == id); if (job == null) return Results.NotFound(new { message = "Задача не найдена" }); jobs.Remove(job); return Results.Ok(); }) .WithName("DeleteJob"); app.Run(); public class Client { public string Id { get; set; } public string Name { get; set; } public string Address { get; set; } } public class Job { public string Id { get; set; } public string Title { get; set; } public string Description { get; set; } public DateTime DeadLine { get; set; } public string ClientId { get; set; } public Client Client { get; set; } } public class JobViewModel { public string Title { get; set; } public string Description { get; set; } public DateTime DeadLine { get; set; } public string ClientId { get; set; } }