2025-02-27 17:13:36 +04:00
using static System . Runtime . InteropServices . JavaScript . JSType ;
namespace IcecreamVan.Exceptions ;
2025-02-26 17:00:16 +04:00
/ *
Н е о б х о д и м о р е а л и з о в а т ь п р и л о ж е н и е д л я а в т о м а т и з а ц и и р а б о т ы
ф у р г о н ч и к а с м о р о ж е н н ы м « С н е г у р о ч к а » . В ф у р г о н ч и к е т р у д я т с я
р а б о т н и к и н а р а з н ы х д о л ж н о с т я х , о н и о т в е ч а ю т з а г о т о в к у ,
п р о д а ж у , п е р е м е щ е н и е . Н е о б х о д и м о ф и к с и р о в а т ь п р о д а ж и р а з л и ч н о г о
м о р о ж е н н о г о ( р а з н ы х т и п о в о т р а з н ы х п р о и з в о д и т е л е й ) . П р е д у с м о т р е т ь
в о з м о ж н о с т ь н а ч и с л е н и я е ж е м е с я ч н о й з а р п л а т ы р а б о т н и к а м н а о с н о в е в ы п о л н е н н ы х п р о д а ж .
* /
public class ValidationException ( string message ) : Exception ( message )
{
}
2025-02-27 17:13:36 +04:00
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 ;
}
}
2025-02-26 17:00:16 +04:00
/ *
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 и щ е л к а я п о н и м , а з а т е м з а п у с т и т ь и х .
* /