This commit is contained in:
Dvurechensky 2025-05-12 03:32:04 +03:00
parent 23c88eb642
commit ddc05f8703
54 changed files with 481 additions and 56 deletions

3
.gitignore vendored

@ -6,7 +6,8 @@
#
# or wget:
# wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore
pre_commit.ps1
pre_commit.log
# User-specific files
*.suo
*.user

@ -1,4 +1,12 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/*
* Глава 17: Принцип единственной обязанности (SOLID SRP)
*
* - инкапсуляция сущности с целью организации архитектуры

@ -1,4 +1,12 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/*
* Глава 18: Принцип открытости/закрытости (SOLID SRP)
*
* Автор: Роберт Мартин (Дядя Боб)

@ -1,4 +1,12 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/*
* Глава 19: Принцип подстановки Барбары Лисков (SOLID SRP)
*
* Автор: Роберт Мартин (Дядя Боб)

@ -1,4 +1,12 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/*
* Глава 20: Принцип разделения интерфейсов (SOLID SRP)
*
* Автор: Роберт Мартин (Дядя Боб)

@ -1,4 +1,12 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/*
* Глава 21: Принцип инверсии зависимостей (SOLID SRP)
*
* Автор: Роберт Мартин (Дядя Боб)

@ -1,4 +1,12 @@
/* Абстрактная фабрика
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Абстрактная фабрика
Предоставляет интерфейс для создания
групп связанных или зависимых объектов,
не указывая их конкретный класс

@ -1,4 +1,12 @@
/* Адаптер
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Адаптер
Конвенртирует интерфейс класса в другой интерфейс,
ожидаемый клиентом. Позволяет классам
с разными интерфейсами работать вместе.

@ -1,3 +1,11 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base.UserLibrary.Tests
{
[TestClass]
@ -12,11 +20,11 @@ namespace Base.UserLibrary.Tests
private UserManagerMsTest manager = new UserManagerMsTest();
/// <summary>
/// DataSource - определение источника данных
/// 1 параметр - имя провайдера
/// 2 параметр - строка подключения или путь к файлу
/// 3 параметр - имя таблицы или элемента XML
/// 4 параметр - как происходит доступ к записям из источника данных
/// DataSource - определение источника данных
/// 1 параметр - имя провайдера
/// 2 параметр - строка подключения или путь к файлу
/// 3 параметр - имя таблицы или элемента XML
/// 4 параметр - как происходит доступ к записям из источника данных
/// </summary>
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"TestData.xml",

@ -1 +1,9 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
global using Microsoft.VisualStudio.TestTools.UnitTesting;

@ -1,4 +1,12 @@
using System;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using System;
public class Base

@ -1,4 +1,12 @@
namespace Base;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base;
public class AssertMsTest
{

@ -1,4 +1,12 @@
namespace Base
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base
{
/// <summary>
/// Тестовый класс статических реализаций

@ -1,4 +1,12 @@
using Newtonsoft.Json;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using Newtonsoft.Json;
using static Base.Records;
namespace Base;

@ -1,19 +1,27 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using Base;
namespace BaseTests;
/// <summary>
/// Модульный тест
/// Конфигурирование:
/// Чтобы добавить возможность вызывать методы какого-либо проекта
/// Нажимаем правой кнопкой на зависимости в данном проекте
/// Выбираем пункт - добавить ссылку на проект
/// Модульный тест
/// Конфигурирование:
/// Чтобы добавить возможность вызывать методы какого-либо проекта
/// Нажимаем правой кнопкой на зависимости в данном проекте
/// Выбираем пункт - добавить ссылку на проект
/// </summary>
[TestClass]
public class TestsMain
{
/// <summary>
/// Реализация тестового метода модульного теста
/// Реализация тестового метода модульного теста
/// </summary>
[TestMethod]
public void TestMethod1()
@ -26,6 +34,6 @@ public class TestsMain
int actual = classMain.countBuild;
// assert
Assert.AreEqual(expected, actual, 0.001, "BuildCount not correctly"); //сравниваем полученное значение с требуемым
Assert.AreEqual(expected, actual, 0.001, "BuildCount not correctly"); //сравниваем полученное значение с требуемым
}
}

@ -1,4 +1,12 @@
using System.Diagnostics;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using System.Diagnostics;
namespace Base.Tests;

@ -1,4 +1,12 @@

/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using System.Diagnostics;
using System.Xml.Linq;

@ -1,4 +1,12 @@
namespace Base.Tests;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base.Tests;
[TestClass]
public class AssemblyInit

@ -1,4 +1,12 @@
namespace Base.Tests;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base.Tests;
[TestClass]
public class AssertMethods

@ -1,4 +1,12 @@
namespace Base.Tests;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base.Tests;
/// <summary>
/// Проверяет результат работы с коллекциями

@ -1,4 +1,12 @@
using System.Text.RegularExpressions;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using System.Text.RegularExpressions;
namespace Base.Tests;

@ -1,4 +1,12 @@
namespace Base.Tests;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Base.Tests;
[TestClass]
public class ExpectingExceptions

@ -1 +1,9 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
global using Microsoft.VisualStudio.TestTools.UnitTesting;

@ -1,4 +1,12 @@
/* Мост
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Мост
Разделяет абстракцию и реализацию так,
чтобы они могли изменяться независимо друг от друга
*/

@ -1,4 +1,12 @@
/* Строитель
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Строитель
Разделяет создание сложного объекта
и его инициализацию так, что одинаковый
процесс построения может может создавать

@ -1,4 +1,12 @@
/* Цепочка обязанностей
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Цепочка обязанностей
Избегает связывание отправителя запроса
с его получателем, давая возможность обработать
запрос более чем одному объекту. Связывает

@ -1,4 +1,12 @@
/* Команда
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Команда
Инкапсулирует запрос в виде объекта
позволяя передавать их клиентам в
качестве параметров, ставить в очередь,

@ -1,4 +1,12 @@
/* Компоновщик
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Компоновщик
Компонует объекты в древовидную структуру по принципу "часть-целое",
представляя их в виде иерархии. Позволяет
клиенту одинаково обращаться как к отдельному,

@ -1,4 +1,12 @@
/* Декоратор
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Декоратор
Динамически предоставляет объекту
дополнительные возможности. Представляет
собой гибкую альтернативу наследованию

@ -1,4 +1,12 @@
using System.Collections;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Specialized;
using System.Diagnostics;

@ -1,4 +1,12 @@
/* Фасад
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Фасад
Предоставляет единый интерфейс к группе
интерфейсов подсистемы. Определяет высокоуровневый
интерфейс, делая систему проще для использования.

@ -1,4 +1,12 @@
/* Фабричный метод
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Фабричный метод
Определяет интерфейс для создания объекта,
но позволяет подклассам решать, какой класс создавать.
Позволяет делегировать создание класса

@ -1,4 +1,12 @@
/* Гибкий(плавный, текучий) строитель (интерфейс)
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Гибкий(плавный, текучий) строитель (интерфейс)
Позволяет упростить процесс создания сложных
объектов с помощью методов-цепочек, которые
наделяют объект каким-то определенным качеством

@ -1,4 +1,12 @@
/* Приспособленец
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Приспособленец
Благодаря совместному использованию,
поддерживает эффективную работу
с большим количеством объектов.

@ -1,4 +1,12 @@
/* Интерпретатор
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Интерпретатор
Получая формальный язык, определяет
представление его грамматики и интерпретатор,
использующий это представление для обработки

@ -1,4 +1,12 @@
/* Итератор
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Итератор
Предоставляет способ последовательного
доступа к множеству, независимо от его
внутреннего устройства

@ -1,10 +1,18 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace LetCode.Tests
{
[TestClass]
public class Tests
{
/// <summary>
/// Индексы чисел в массиве образующих число target
/// Индексы чисел в массиве образующих число target
/// </summary>
[TestMethod]
public void TwoSumTest()

@ -1 +1,9 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
global using Microsoft.VisualStudio.TestTools.UnitTesting;

@ -1,4 +1,12 @@
public static class LetCodeTasks
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
public static class LetCodeTasks
{
/// <summary>
/// Какие числа массива дают в сумме указанное число

@ -1,4 +1,12 @@
/* Посредник
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Посредник
Определяет объект инкапсулирующий способ
взаимодействия объектов. Обеспечивает слабую связь,
избавляя их от необходимости ссылаться друг на друга

@ -1,4 +1,12 @@
/* Хранитель + Одиночка
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Хранитель + Одиночка
Не нарушая инкапсуляцию, определяет
и сохраняет внутреннее состояние объекта и
позволяет позже восстановить объект в этом

@ -1,4 +1,12 @@
/* Наблюдатель
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Наблюдатель
Определяет зависимость один ко многим
между объектами так, что когда один меняет
своё состояние, все зависимые объекты оповещаются

@ -1,4 +1,12 @@
/* Прототип
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Прототип
Определяет несколько видов объектов,
чтобы при создании использовать объект-прототип
и создаёт новые объекты, копируя прототип

@ -1,4 +1,12 @@
using Microsoft.EntityFrameworkCore;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
using Microsoft.EntityFrameworkCore;
/* Заместитель
Предоставляет объект-заместитель другого объекта
для контроля доступа к нему

@ -1,4 +1,12 @@
/* Одиночка
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Одиночка
Гарантирует что класс имеет только
один экземпляр и представляет глобальную
точку доступа к нему

@ -1,4 +1,12 @@
/* Состояние
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Состояние
Позволяет объекту изменять
своё поведение в зависимости от
внутреннего состояния

@ -1,4 +1,12 @@
namespace Strategy;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Strategy;
internal interface ILogReader
{

@ -1,4 +1,12 @@
namespace Strategy;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Strategy;
public enum LogType
{

@ -1,4 +1,12 @@
namespace Strategy;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Strategy;
public class LogFileReader : ILogReader
{

@ -1,4 +1,12 @@
namespace Strategy;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Strategy;
public class LogProcessor
{

@ -1,4 +1,12 @@
/* Стратегия
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Стратегия
Определяет группу алгоритмов,
инкапсулирует их и делает взаимозаменяемыми.
Позволяет изменять алгоритм независимо от клиентов,

@ -1,4 +1,12 @@
namespace Strategy;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
namespace Strategy;
public class WindowsEventLogReader : ILogReader
{

@ -1,4 +1,12 @@
/* Шаблонный метод
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Шаблонный метод
Определяет алгоритм, некоторые этапы которого
делегируются подклассам. Позволяет подклассам
переопределить эти этапы, не меняя структуру алгоритма.

@ -1,4 +1,12 @@
/* Посетитель
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 03:31:02
* Version: 1.0.7
*/
/* Посетитель
Представляет собой операцию, которая
будет выполнена над объектами группы классов.
Даёт возможность определить новую операцию