Сысолятин Егор Лаб. 1 Группа 6512#104
Conversation
Gwymlas
left a comment
There was a problem hiding this comment.
Для начала вычистить от ненужных проектов: CloudDevelopment.ApiService, CloudDevelopment.Web и так далее
Добавить в Aspire веб-интерфейс redis и клиент Client.Wasm, который шел изначально
|
Насколько я понял, вы смотрите не последнюю версию проекта. У меня там нет ни ApiService, ни Web. Есть и redis и Wasm. https://github.com/RYTpL/cloud-development/tree/lb1_var34 |
|
CloudDevelopment.ApiService В текущем AppHost нет веб-интерфейса для redis по типу redis insight или redis commander и |
…крины в отдельно папке(может мешать vpn). redis есть
|
Сделал |
Gwymlas
left a comment
There was a problem hiding this comment.
Сейчас клиент не обращается к сервису генерации, исправить
В StudentCard.razor заполнить данные
| @@ -0,0 +1,17 @@ | |||
| <Project Sdk="Aspire.AppHost.Sdk/13.2.2"> | |||
| string ProjectManager, | ||
| DateOnly StartDate, | ||
| DateOnly PlannedEndDate, | ||
| DateOnly ActualEndDate, |
There was a problem hiding this comment.
ActualEndDate по заданию должно быть DateOnly?
| var cacheKey = $"contract:{id}"; | ||
|
|
||
| // Пробуем достать из кэша | ||
| var cached = await cache.GetStringAsync(cacheKey); |
There was a problem hiding this comment.
GetStringAsync и SetStringAsync могут кинуть исключения, надо обернуть в try-catch
|
это поправил |
Gwymlas
left a comment
There was a problem hiding this comment.
Клиент до сих пор не обращается к сервису
| .WaitFor(redis); | ||
|
|
||
| builder.AddProject<Projects.Client_Wasm>("client-wasm") | ||
| .WithReference(generation) |
| @@ -0,0 +1,17 @@ | |||
| <Project Sdk="Aspire.AppHost.Sdk/13.2.2"> | |||
There was a problem hiding this comment.
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="9.5.2" />
| public ContractCacheService( | ||
| IDistributedCache cache, | ||
| ContractGeneratorService generator, | ||
| ILogger<ContractCacheService> logger) | ||
| { | ||
| _cache = cache; | ||
| _generator = generator; | ||
| _logger = logger; | ||
| } |
|
|
||
| private static readonly DistributedCacheEntryOptions _cacheOptions = new() | ||
| { | ||
| AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5) |
| private readonly Faker _faker = new("ru"); | ||
|
|
||
| // Id теперь принимается снаружи (от пользователя) | ||
| public SoftwareProjectContract Generate(int id) |
There was a problem hiding this comment.
Правила генерации лучше описывать при инициализации Faker, а не каждый раз при создании объекта
| var lastName = _faker.Name.LastName(Bogus.DataSets.Name.Gender.Male); | ||
| var firstName = _faker.Name.FirstName(Bogus.DataSets.Name.Gender.Male); | ||
| var middleName = _faker.Name.FirstName(Bogus.DataSets.Name.Gender.Male) + "ович"; |
| policy.AllowAnyOrigin() | ||
| .AllowAnyMethod() | ||
| .AllowAnyHeader())); |
There was a problem hiding this comment.
Настроить: добавить origin, разрешенные методы и хэдеры
ФИО: Сысолятин Егор
Номер группы: 6512
Номер лабораторной: 1
Номер варианта: 34
Краткое описание предметной области: Программный проект
Краткое описание добавленных фич: Реализован сервис генерации контрактов на разработку ПО на основе Bogus с кэшированием ответов через IDistributedCache и Redis, структурным логированием через Serilog и оркестрацией через .NET Aspire.