Conversation
CreditApp.Api/Services/CreditGeneratorService/CreditApplicationGeneratorService.cs
Outdated
Show resolved
Hide resolved
CreditApp.Api/Services/CreditGeneratorService/CreditApplicationGeneratorService.cs
Outdated
Show resolved
Hide resolved
CreditApp.Api/Services/CreditGeneratorService/CreditApplicationGeneratorService.cs
Outdated
Show resolved
Hide resolved
CreditApp.Api/Services/CreditGeneratorService/CreditApplicationGeneratorService.cs
Outdated
Show resolved
Hide resolved
CreditApp.Api/CreditApp.Api.csproj
Outdated
| <PackageReference Include="Aspire.StackExchange.Redis" Version="9.5.2" /> | ||
| <PackageReference Include="Bogus" Version="35.6.5" /> | ||
| <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.24" /> | ||
| <PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.24" /> |
There was a problem hiding this comment.
Скорее всего использование Aspire.StackExchange.Redis.DistributedCaching будет лучше
| builder.Services.AddSwaggerGen(options => | ||
| { | ||
| options.SwaggerDoc("v1", new Microsoft.OpenApi.OpenApiInfo | ||
| { | ||
| Title = "CreditApp API" | ||
| }); | ||
|
|
||
| var xmlFilename = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml"; | ||
| var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFilename); | ||
| if (File.Exists(xmlPath)) | ||
| { | ||
| options.IncludeXmlComments(xmlPath); | ||
| } | ||
|
|
||
| var domainXmlPath = Path.Combine(AppContext.BaseDirectory, "CreditApp.Domain.xml"); | ||
| if (File.Exists(domainXmlPath)) | ||
| { | ||
| options.IncludeXmlComments(domainXmlPath); | ||
| } | ||
| }); |
There was a problem hiding this comment.
Теперь этот файл выглядит как-то громоздко
Можно оставить так, можно просто выпилить отсюда сваггер, он тут в принципе то и не нужен, тестирование можно делать через клиент
|
|
||
| private static readonly string[] _terminalStatuses = ["Одобрена", "Отклонена"]; | ||
|
|
||
| public async Task<CreditApplication> GetByIdAsync(int id, CancellationToken cancellationToken = default) |
|
|
||
| var application = GenerateApplication(id); | ||
|
|
||
| var expirationMinutes = _configuration.GetValue("CacheSettings:ExpirationMinutes", 10); |
There was a problem hiding this comment.
Тут лучше вынести значение в приватное поле
| var submissionDateTime = c.SubmissionDate.ToDateTime(TimeOnly.MinValue); | ||
| var daysAfterSubmission = f.Random.Int(1, 60); | ||
| var approvalDateTime = submissionDateTime.AddDays(daysAfterSubmission); | ||
|
|
||
| if (approvalDateTime > DateTime.Now) | ||
| approvalDateTime = DateTime.Now; | ||
|
|
||
| return DateOnly.FromDateTime(approvalDateTime); |
There was a problem hiding this comment.
Можно как-нибудь вот так:
return f.Date.BetweenDateOnly(c.SubmissionDate, DateOnly.FromDateTime(DateTime.Today));
CreditApp.AppHost/Program.cs
Outdated
|
|
||
| var builder = DistributedApplication.CreateBuilder(args); | ||
|
|
||
| var redis = builder.AddRedis("cache"); |
There was a problem hiding this comment.
Я бы добавил сюда .WithRedisCommander()
CreditApp.AppHost/Program.cs
Outdated
| @@ -0,0 +1,15 @@ | |||
| using Aspire.Hosting; | |||
| /// <summary> | ||
| /// Тип кредита | ||
| /// </summary> | ||
| public string Type { get; set; } = String.Empty; |
There was a problem hiding this comment.
Лучше тут использовать string.Empty
А вообще, если это значение обязательное, то нужно убрать string.Empty и пометить модификатором required
Возможно какие-то другие проперти тоже можно сделать required
| /// <summary> | ||
| /// Статус заявки | ||
| /// </summary> | ||
| public string Status { get; set; } = String.Empty; |
| @@ -0,0 +1,24 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | |||
|
|
|||
| <Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" /> | |||
There was a problem hiding this comment.
Тут лучше явно задать 9.5.2, на всякий случай
ФИО: Куненков Иван
Номер группы: 6511
Номер лабораторной: 1
Номер варианта: 9
Краткое описание предметной области: Кредитные заявки
Краткое описание добавленных фич: Добавлен сервис генерации и кеширование через redis