C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Показати більше📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming
Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 129 підписників, посідаючи 7 041 місце в категорії Технології та додатки та 36 302 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 129 підписників.
За останніми даними від 29 серпня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -78, а за останні 24 години на -7, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 15.03%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.44% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 2 725 переглядів. Протягом першої доби публікація в середньому набирає 1 348 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Завдяки високій частоті оновлень (останні дані отримано 30 серпня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
[HttpPost("login")]
public async Task<IActionResult> Login([FromBody] LoginUserDto loginUserDto)
{
IdentityUser? identityUser = await userManager.FindByEmailAsync(loginUserDto.Email);
if (identityUser == null ||
!await userManager.CheckPasswordAsync(identityUser, loginUserDto.Password))
{
return Unauthorized();
}
User? appUser = await context.Users
.FirstOrDefaultAsync(u => u.Id == Guid.Parse(identityUser.Id));
if (appUser == null)
{
return NotFound();
}
string accessToken = tokenProvider.GenerateAccessToken(appUser);
string refreshToken = tokenProvider.GenerateRefreshToken();
return Ok(new AuthResponseDto(accessToken, refreshToken));
}dotnet watch run.
⭐ 10k+ звёзд на GitHub, must-have для практики!
https://github.com/dodyg/practical-aspnetcoreIMiddleware
2. Помести всю логику в InvokeAsync(...)
Но не забудь два важных шага:
✅ Зарегистрируй middleware в DI-контейнере:
services.AddTransient<YourMiddleware>();
✅ Добавь его в пайплайн:
app.UseMiddleware<YourMiddleware>();
🎯 Такой подход:
- делает middleware переиспользуемым
- учитывает область действия зависимостей (scoped)
- и позволяет легко покрыть тестами
Идеально, если хочешь поддерживаемый и чистый код.