117 lines
5.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using static System.Runtime.InteropServices.JavaScript.JSType;
namespace IcecreamVan.Exceptions;
/*
Необходимо реализовать приложение для автоматизации работы
фургончика с мороженным «Снегурочка». В фургончике трудятся
работники на разных должностях, они отвечают за готовку,
продажу, перемещение. Необходимо фиксировать продажи различного
мороженного (разных типов от разных производителей). Предусмотреть
возможность начисления ежемесячной зарплаты работникам на основе выполненных продаж.
*/
public class ValidationException(string message) : Exception(message)
{
}
public class NullListException : Exception
{
public NullListException() : base("The returned LIST is NULL") { }
}
public class StorageException : Exception
{
public StorageException(Exception ex) : base($"Error while working in STORAGE: {ex.Message}", ex) { }
}
public class ElementExistsException : Exception
{
public string ParamName { get; private set; }
public string ParamValue { get; private set; }
public ElementExistsException(string paramName, string paramValue) : base($"There is already an element with SAME VALUE{paramValue} of parameter {paramName}")
{ ParamName = paramName; ParamValue = paramValue; }
}
public class ElementNotFoundException : Exception
{
public string Value { get; private set; }
public ElementNotFoundException(string value) : base($"Element NOT FOUND at value = {value}") { Value = value; }
}
public class IncorrectDatesException : Exception
{
public IncorrectDatesException(DateTime start, DateTime end) : base($"The END date must be LATER than the START date..StartDate: {start: dd.MM.YYYY}. EndDate: {end:dd.MM.YYYY}") { }
}
public static class DateTimeExtensions
{
public static bool IsDateNotOlder(this DateTime date, DateTime olderDate)
{
return date >= olderDate;
}
}
/*
Questions :
1. Регулярные выражения (regex или regexp) -
последовательность символов, которая определяет шаблон поиска.
Используется при проверки соответствия строки определенному шаблону (например, проверка формата email-адреса).
Один из основных инструментов - Метасимволы.
Специальные символы, имеющие особое значение. Вот некоторые из наиболее распространенных:
. Соответствует любому одиночному символу(кроме новой строки, если не указано иное).
^ - началу строки.
$ - концу строки.
* - нулю или более повторениям предыдущего символа или группы.
+ - одному или более повторениям предыдущего символа или группы.
? - нулю или одному повторению предыдущего символа или группы.
([!] СМ. BuyerDataModel / WorkerDM [!])
Regex.Matches(text, pattern) - выполняет поиск всех соответствий шаблону pattern в тексте text.
MatchCollection - коллекция найденных соответствий.
match.Value - свойство объекта Match, содержащее найденную подстроку.
2. В Solution Explorer -> Выбр. роект(щёлкнув), в который вы хотите добавить ссылку, Add -> Project Reference…
(или “Добавить” -> “Ссылка на проект…”). В открывшемся окне отметить проект, который хочу подключить
ВАЖНО : Не допускать циклических зависимостей + Убедиться, что подключаемые классы и методы,
для исп. в другом проекте, имеют модификатор доступа public / internal (по умолчанию)
делает их доступными только в пределах текущей сборки.
3. В C# тестирование обычно выполняется с использованием фреймворков, таких как MSTest, NUnit или xUnit.
Независимо от фреймворка, Visual Studio предоставляет удобный интерфейс для запуска тестов.
Запуск тестов через Test Explorer: Открыть Test Explorer: Test -> Windows -> Test Explorer (или Ctrl+E, T).
Иногда может потребоваться нажать кнопку “Refresh” в Test Explorer.
Щелкните правой кнопкой мыши по имени теста в Test Explorer и выберите “Run Selected Tests”
(или “Запустить выбранные тесты”). Можно выбрать несколько тестов, удерживая Ctrl или Shift и щелкая по ним, а затем запустить их.
*/