Skip to content

Instantly share code, notes, and snippets.

View rodion-m's full-sized avatar
🤩
CodeAliving

Rodion Mostovoi rodion-m

🤩
CodeAliving
View GitHub Profile
@rodion-m
rodion-m / null_vs_void.md
Last active June 4, 2021 20:17
Null vs Void CSharp - IL

NULL

object? GoNull() {
 return null;   
}

As IL:

    .method assembly hidebysig static 
 object '<$>g__GoNull|0_0' () cil managed 
@rodion-m
rodion-m / RuSpeller.cs
Last active November 25, 2021 11:34
Russian numbers spelling with words
using System;
using System.Collections.Generic;
namespace Proj
{
public static class RuSpellingExtensions
{
private static readonly Dictionary<string, string[]> spellDb = new Dictionary<string, string[]>()
{
//1 2 10
@rodion-m
rodion-m / EncodingDetector.cs
Created January 2, 2022 20:23
Encoding Detector (for corrupted zip files names for example)
using System.Text;
namespace ZipFilesEncodingFixer
{
public static class EncodingDetector
{
static EncodingDetector()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
@rodion-m
rodion-m / reverse_digits.py
Created January 9, 2022 20:56
Reverse number digits (Python)
# For example 3919 will be reversed to 9193
reverse = 0
number = int(input(“Please input a number to be reversed.\n”))
while (number > 0):
lastDigit = number % 10
reverse =(reverse*10) + lastDigit
number = number // 10
print(reverse)
@rodion-m
rodion-m / api_client_example.cs
Created January 23, 2022 16:25
HTTP API Client example foe ASP.NET Core course
using System.Net.Http.Json;
public class ShopClient
{
private readonly string _host;
private readonly HttpClient _httpClient;
public ShopClient(string? host = null, HttpClient? httpClient = null)
{
_httpClient = httpClient ?? new HttpClient();
@rodion-m
rodion-m / ResponseDefaultFormatterService.cs
Created April 7, 2022 22:01
Here is a solution that allows to write ObjectResult inside Middleware (write http response using MVC formatters (serializers) from Middleware).
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Formatters;
using Microsoft.AspNetCore.Mvc.Infrastructure;
namespace Services;
public class ResponseDefaultFormatterService
{
private readonly IHttpResponseStreamWriterFactory _streamWriterFactory;
private readonly OutputFormatterSelector _formatterSelector;
@rodion-m
rodion-m / AppAuthFilterAttribute.cs
Last active April 8, 2022 22:41
An example of filter ordering based on enum
public class AppAuthFilterAttribute : Attribute, IAuthorizationFilter, IAppOrderedFilter
{
public FilterOrder Order { get; set; }
public void OnAuthorization(AuthorizationFilterContext context)
{
//some logic...
}
}
@rodion-m
rodion-m / asp_net_course_jun_middle.md
Last active July 4, 2024 03:28
Вопросы для экзамена по ASP.NET Core (Junior + Middle)

Вопросы для экзамена по ASP.NET Core

Положение

Студент приходит на экзамен. Ему достаётся случайный вопрос. Вопросы бывают сложности Junior, Middle, Senior. Ответ на Junior даёт 3 балла, ответ на Middle даёт 4 балла, ответ на Senior даёт 5 баллов. Вопросы уровня Senior можно пропустить (до 2 раз). Вопросы уровня Junior и Middle пропустить нельзя, это равносильно провалу ответа (0 баллов). Ответ хотя бы на 1 вопрос из категории Junior обязателен. Частичный ответ даёт частичную оценку.

Более подробное положение по пунктам

  • Для сдачи экзамена каждому студенту следует ответить на 3 вопроса.
  • Ответ хотя бы на 1 вопрос из категории Junior обязателен.
  • В категории Senior можно ответить максимум на 1 вопрос.
  • В категории Middle можно ответить максимум на 2 вопроса.
  • Исчерпывающий ответ на вопрос дает максимальный балл в соответствии с категорией вопроса.
  • Частичный ответ снижает балл.
@rodion-m
rodion-m / asp_net_course_full.md
Last active July 31, 2025 17:16
Вопросы для экзамена по ASP.NET Core

Вопросы для экзамена по ASP.NET Core

Положение

  • Для сдачи экзамена каждому студенту следует ответить на 3 вопроса.
  • Ответ хотя бы на 1 вопрос из категории Junior обязателен.
  • В категории Senior можно ответить максимум на 1 вопрос.
  • В категории Middle можно ответить максимум на 2 вопроса.
  • Исчерпывающий ответ на вопрос дает максимальный балл в соответствии с категорией вопроса.
  • Частичный ответ снижает балл.
  • Если ответ не дан, баллы за него не начисляются.
  • Вопросы из категории Senior можно пропустить максимум 2 раза, каждый пропущенный вопрос уменьшает общее кол-во баллов на 1.
  1. Вынесите проект, который возвращает список вакансий с сайта proglib.io в отдельную библиотеку
    Реализуйте телеграмм бота, который:
  2. По запросу /vacancies выведите все вакансии с сайта proglib.io
  3. По запросу /all_employers выведите все компании с сайта hh.ru
  4. По запросу /search_employers {текст_поиска} выведите результаты поиска нанимателей