Skip to content

Гусарова Маргарита Лаб. 1 Группа 6512 #60

Open
MaargoGysarova wants to merge 3 commits intoitsecd:mainfrom
MaargoGysarova:main
Open

Гусарова Маргарита Лаб. 1 Группа 6512 #60
MaargoGysarova wants to merge 3 commits intoitsecd:mainfrom
MaargoGysarova:main

Conversation

@MaargoGysarova
Copy link

@MaargoGysarova MaargoGysarova commented Mar 15, 2026

ФИО: Гусарова Маргарита
Номер группы: 6512
Номер лабораторной: 1
Номер варианта: 21
Краткое описание предметной области: Кредитная заявка (тип кредита, суммы, сроки, ставка, даты, статус, страховка; генерация по правилам варианта 21 и кэширование результата)
Краткое описание добавленных фич:

  • Реализован генератор CreditApplication на Bogus с бизнес‑правилами варианта 21
  • Сервис с кэшированием ответов в Redis (IDistributedCache), TTL из конфигурации
  • REST‑эндпойнт GET /api/creditapplication?id={id}
  • Оркестрация через .NET Aspire (AppHost поднимает Redis и API)
  • Клиентская карточка на Blazor WebAssembly (CreditApplicationCard) для запроса и отображения заявки
  • xUnit‑тесты генерации: проверка ставок, сумм, дат и терминальных статусов
  • Обновлён README (архитектура, запуск, эндпойнт, раздел со скриншотом)
credit-application-card

@github-actions github-actions bot added In progress Код в процессе проверки Lab 1 Лабораторная №1. Кэширование labels Mar 15, 2026
@github-actions github-actions bot requested a review from Gwymlas March 15, 2026 14:51
<UnorderedListItem>Номер <Strong>№X "Название лабораторной"</Strong></UnorderedListItem>
<UnorderedListItem>Вариант <Strong>№Х "Название варианта"</Strong></UnorderedListItem>
<UnorderedListItem>Выполнена <Strong>Фамилией Именем 65ХХ</Strong> </UnorderedListItem>
<UnorderedListItem><Link To="https://puginarug.com/">Ссылка на форк</Link></UnorderedListItem>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Потерялась ссылка на форк


[Route("api/[controller]")]
[ApiController]
public class CreditApplicationController(ICreditApplicationGeneratorService generatorService, ILogger<CreditApplicationController> logger) : ControllerBase
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить атрибут ProducesResponseType

Comment on lines +19 to +25
var creditTypes = new[]
{
"Потребительский", "Ипотека", "Автокредит", "Рефинансирование",
"Образовательный", "Кредитная карта", "Бизнес"
};

var statuses = new[] { "Новая", "В обработке", "Одобрена", "Отклонена" };
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вынести в private static readonly поля

/// Возвращает кредитную заявку по идентификатору.
/// Если найдена в кэше — возвращается из него; иначе генерируется, сохраняется в кэш и возвращается.
/// </summary>
public async Task<CreditApplication> GetByIdAsync(int id, CancellationToken cancellationToken = default)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Работу с кэшем вынести в отдельные методы или в отдельную службу

.WaitFor(redis);

builder.AddProject<Projects.Client_Wasm>("client")
.WithReference(api)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не нужен .WithReference(api)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить проект с тестами

}

[Fact]
public void ApprovedAmount_Only_For_Approved_Status_And_Leq_Requested()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Результат этого теста зависит от случайно сгенерированного статуса, чтобы покрыть все значения, думаю стоит сгенерировать несколько объектов (побольше, чтобы точно все статусы попали) и для каждого проверить условия
Аналогично сделать для DecisionDate_Only_For_Terminal_Statuses_And_After_ApplicationDate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

In progress Код в процессе проверки Lab 1 Лабораторная №1. Кэширование

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants