Conversation
Не судите строго, я pycharman
С каждой строчкой я все дальше от бога
Секрет Гудини
| private readonly IEmployeeService _employeeService; | ||
| private readonly ILogger<EmployeeController> _logger; | ||
|
|
||
| public EmployeeController(IEmployeeService employeeService, ILogger<EmployeeController> logger) | ||
| { | ||
| _employeeService = employeeService; | ||
| _logger = logger; | ||
| } |
There was a problem hiding this comment.
Использовать праймари конструктор
| /// </summary> | ||
| [ApiController] |
There was a problem hiding this comment.
Добавить параметры праймари конструктора в саммари
| _logger.LogInformation("Запрос на получение сотрудника с seed: {Seed}", seed); | ||
| var employee = await _employeeService.GetEmployeeAsync(seed, cancellationToken); | ||
| return Ok(employee); |
There was a problem hiding this comment.
Точно не надо какую-нибудь обработку исключений соорудить?
| public EmployeeGenerator(ILogger<EmployeeGenerator> logger) | ||
| { | ||
| _logger = logger; | ||
| } |
There was a problem hiding this comment.
6 дотнет вышел в 2021 году, в какой временной петле ты существуешь без праймари конструкторов?
| var gender = faker.PickRandom<Bogus.DataSets.Name.Gender>(); | ||
| var firstName = faker.Name.FirstName(gender); | ||
| var lastName = faker.Name.LastName(gender); | ||
| var patronymicBase = faker.Name.FirstName(Name.Gender.Male); | ||
| var patronymic = gender == Name.Gender.Male | ||
| ? patronymicBase + "ович" | ||
| : patronymicBase + "овна"; | ||
| var fullName = $"{lastName} {firstName} {patronymic}"; | ||
|
|
||
| var profession = faker.PickRandom(_professions); | ||
| var suffix = faker.PickRandom(_suffixes); | ||
| var position = $"{profession} {suffix}".Trim(); | ||
|
|
||
| var department = faker.Commerce.Department(); | ||
|
|
||
| var hireDate = DateOnly.FromDateTime(faker.Date.Past(10).ToUniversalTime()); | ||
|
|
||
| var salary = suffix switch | ||
| { | ||
| "Junior" => faker.Random.Decimal(30000, 60000), | ||
| "Middle" => faker.Random.Decimal(60000, 100000), | ||
| "Senior" => faker.Random.Decimal(100000, 180000), | ||
| _ => faker.Random.Decimal(40000, 80000) | ||
| }; | ||
| salary = Math.Round(salary, 2); | ||
|
|
||
| var email = faker.Internet.Email(firstName, lastName); | ||
| var phone = faker.Phone.PhoneNumber("+7(###)###-##-##"); | ||
| var isTerminated = faker.Random.Bool(0.1f); | ||
|
|
||
| DateOnly? terminationDate = null; | ||
| if (isTerminated) | ||
| { | ||
| var termDate = faker.Date.Between(hireDate.ToDateTime(TimeOnly.MinValue), DateTime.Now); | ||
| terminationDate = DateOnly.FromDateTime(termDate); | ||
| } | ||
|
|
||
| var employee = new Employee | ||
| { | ||
| Id = faker.Random.Int(1, 100000), | ||
| FullName = fullName, | ||
| Position = position, | ||
| Department = department, | ||
| HireDate = hireDate, | ||
| Salary = salary, | ||
| Email = email, | ||
| Phone = phone, | ||
| IsTerminated = isTerminated, | ||
| TerminationDate = terminationDate | ||
| }; |
There was a problem hiding this comment.
Переписать все через .RuleFor()
Выйдет раза в три меньше кода, кстати
| .WithEnvironment("REDIS_HOSTS", "local:redis:6379") | ||
| .WithReference(redis) | ||
| .WaitFor(redis) | ||
| .WithEndpoint(port: 8081, targetPort: 8081); |
There was a problem hiding this comment.
RedisCommander доступен через интеграцию самого редиса
var redis = builder.AddRedis("redis").WithRedisCommander("redis-commander");| <PackageReference Include="Aspire.Hosting" Version="13.1.1" /> | ||
| <PackageReference Include="Aspire.Hosting.AppHost" Version="13.1.1" /> | ||
| <PackageReference Include="Aspire.Hosting.Redis" Version="13.1.1" /> | ||
| <PackageReference Include="Aspire.StackExchange.Redis.DistributedCaching" Version="13.1.1" /> |
There was a problem hiding this comment.
Рекомендация:
2. Подними версию sdk аспаер до последней предшествующей 13
3. Опусти версию библиотек до версии аспаер
Так у тебя точно ничего не отвалится
| <ItemGroup> | ||
| <ProjectReference Include="..\Client.Wasm\Client.Wasm.csproj" /> | ||
| <ProjectReference Include="..\CompanyEmployee.Api\CompanyEmployee.Api.csproj" /> | ||
| <ProjectReference Include="..\CompanyEmployee.Domain\CompanyEmployee.Domain.csproj" /> |
There was a problem hiding this comment.
Ты каким образом собрался оркестрировать класс либу?
Не надо пихать везде референсы на все остальное просто на всякий случай
| public string FullName { get; set; } = string.Empty; | ||
|
|
||
|
|
||
| /// <summary> |
There was a problem hiding this comment.
Пожалуйста
не надо щели
Код твоего решения и так меня впечатляет без необходимости накручивать счетчик измененных строк
There was a problem hiding this comment.
Вообще, в ридми было бы неплохо добавить инфу о своем проекте вместо того, чтобы отправлять файл в могилу

ФИО: Казаков Андрей Дмитриевич
Номер группы: 6513
Номер лабораторной: 1
Номер варианта: 43
Краткое описание предметной области: Сотрудник компании
Краткое описание добавленных фич: Добавлен сервис генерации с кэшированием, структурное логирование и оркестрация