Flexberry ORM 8.0.0-beta01
Класс ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs

Вспомогательные методы. Подробнее...

Открытые статические члены

static void CheckMethodArguments (MethodCallExpression expression, Type[] args)
 Проверка актуальных параметров метода на соответствие ожидаемым. Подробнее...
 
static CompoundExpressionTreeProcessor CreateDefaultProcessor (IExpressionTranformationProvider provider)
 The create default processor. Подробнее...
 
static IQueryParser CreateQueryParser ()
 The create query parser. Подробнее...
 
static bool ExpressionMethodEquals (MethodCallExpression expression, string name, Type[] args)
 Проверка равен ли метод из expression заданному параметрами name и args. Подробнее...
 
static Function GetCompareWithNullFunction (ExpressionType exprType, object par)
 The get compare with null function. Подробнее...
 
static Function GetFalseFunc ()
 The get false func. Подробнее...
 
static string GetFuncNameByExpressionType (ExpressionType exprType)
 The get func name by expression type. Подробнее...
 
static void GetFunctionAndParam (object p1, object p2, out Function func, out string stringVal)
 The get function and param. Подробнее...
 
static string GetFunctionByName (string name)
 возвращает lcs функцию по имени функции C#. Подробнее...
 
static string GetLikePatternByFunctionName (string name)
 Получение шаблона для функции Like, куда будет вставлена строка поиска, по имени функции. Подробнее...
 
static void MinimalSqlCheck (string sqlString)
 Минимальная проверка шаблона sql-like: то, что в нём нет символов, которые пока нельзя перевести в Regex и обратно. Подробнее...
 
static string ConvertSqlToRegex (string sqlString)
 Метод преобразует шаблон поиска в стиле sql-like в шаблон в стиле Regex. Как будет переводиться (*, а не %, поскольку так переводит SQLDataService): abc => abc abc* => ^abc *abc => abc$ abc*d => abc.*d ab_c => ab.c. Подробнее...
 
static void MinimalRegexCheck (string regexString)
 Минимальная проверка шаблона регулярных выражений: то, что он вообще валиден, и то, что в нём нет символов, которые нельзя перевести в sql-like. Подробнее...
 
static string ConvertRegexToSql (string regexString)
 Преобразование из шаблона поиска Regex в шаблон поиска для sql-функции like. Как будет переводиться (*, а не %, поскольку так переводит SQLDataService): abc => abc ^abc => abc* abc$ => abc abc.*d => abc*d ab.c => ab_c Порядок замены: Подробнее...
 
static MemberInfo GetObjectPropertyValue (object obj, string propertyName)
 The get object property value. Подробнее...
 
static Function GetParamBinaryFunc (ExpressionType exprType, object par2, object par1)
 The get param binary func. Подробнее...
 
static object TryExecuteBinaryOberation (ExpressionType exprType, object par2, object par1)
 Попытка скомпилировать бинарное выражение и вместо сложного выражения записать в lcs уже простую константу. Подробнее...
 
static string GetSqlWherePattern (int startIndex, int count)
 The get sql where pattern. Подробнее...
 
static Function GetTrueFunc ()
 The get true func. Подробнее...
 
static bool IsExactFunction (object f, string fName)
 Проверяет, что объект - функция с определенным именем. Подробнее...
 
static void AddPropertyToView (View view, string propertyName, bool viewIsDynamic)
 Проверить, есть ли требуемое свойство в представлении. Если представление динамическое, то при отсутствии свойства оно добавляется. Подробнее...
 
static void AddMasterToView (View view, string masterName, bool viewIsDynamic)
 Проверить, есть ли требуемый мастер в представлении. Если представление динамическое, то при отсутствии мастера он добавляется. Подробнее...
 
static View AddDetailViewToView (View view, string detailName, bool viewIsDynamic)
 Возвращает представление детейла из представления агрегатора. Если представление динамическое и в нем не оказалось нужного детейла, то добавляет его, задавая в качестве представления пустое представление (которое будет заполняться при разборе подзапросов к данному детейлу). Подробнее...
 
static string GetNameForDynamicView (Type dataObjectType)
 Формируем динамическое имя для представления на основе типа. Подробнее...
 

Подробное описание

Вспомогательные методы.

Методы

◆ AddDetailViewToView()

static View ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.AddDetailViewToView ( View  view,
string  detailName,
bool  viewIsDynamic 
)
inlinestatic

Возвращает представление детейла из представления агрегатора. Если представление динамическое и в нем не оказалось нужного детейла, то добавляет его, задавая в качестве представления пустое представление (которое будет заполняться при разборе подзапросов к данному детейлу).

Аргументы
viewПредставление агрегатора.
detailNameИмя детейла.
viewIsDynamicЯвляется ли представление динамическим.
Возвращает
Представление детейла.

◆ AddMasterToView()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.AddMasterToView ( View  view,
string  masterName,
bool  viewIsDynamic 
)
inlinestatic

Проверить, есть ли требуемый мастер в представлении. Если представление динамическое, то при отсутствии мастера он добавляется.

Аргументы
viewПредставление.
masterNameИмя мастера.
viewIsDynamicЯвляется ли представление динамическим.

◆ AddPropertyToView()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.AddPropertyToView ( View  view,
string  propertyName,
bool  viewIsDynamic 
)
inlinestatic

Проверить, есть ли требуемое свойство в представлении. Если представление динамическое, то при отсутствии свойства оно добавляется.

Аргументы
viewТекущее сформированное представление.
propertyNameИмя свойства, которое ищется в представлении.
viewIsDynamicЯвляется ли представление динамическим (если да, то в него можно добавлять недостающие свойства).

◆ CheckMethodArguments()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.CheckMethodArguments ( MethodCallExpression  expression,
Type[]  args 
)
inlinestatic

Проверка актуальных параметров метода на соответствие ожидаемым.

Аргументы
expressionВыражение-вызов метода.
argsОжидаемый массив типов аргументов метода.

◆ ConvertRegexToSql()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.ConvertRegexToSql ( string  regexString)
inlinestatic

Преобразование из шаблона поиска Regex в шаблон поиска для sql-функции like. Как будет переводиться (*, а не %, поскольку так переводит SQLDataService): abc => abc ^abc => abc* abc$ => abc abc.*d => abc*d ab.c => ab_c Порядок замены:

  1. Экранируются _. //TODO: временно не делается
  2. . (точка не экранирована, это проверилось ранее)
  3. . (если точка не экранирована)
  4. ^, $ (если они не экранированы) и их отсутствие.
  5. Снимается экранирование со всех символов, кроме *, [, ]. //TODO: временно экранирование снимается со всех символов, поскольку в разных версиях sql экранирование для шаблона like проходит по-разному.
Аргументы
regexStringШаблон поиска в нотации для regex.
Возвращает
Шаблон поиска в нотации для sql-функции like.

◆ ConvertSqlToRegex()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.ConvertSqlToRegex ( string  sqlString)
inlinestatic

Метод преобразует шаблон поиска в стиле sql-like в шаблон в стиле Regex. Как будет переводиться (*, а не %, поскольку так переводит SQLDataService): abc => abc abc* => ^abc *abc => abc$ abc*d => abc.*d ab_c => ab.c.

Аргументы
sqlStringСтрока, которая была в шаблоне поиска для sql-like.
Возвращает
Сформированный шаблон поиска для Regex.

◆ CreateDefaultProcessor()

static CompoundExpressionTreeProcessor ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.CreateDefaultProcessor ( IExpressionTranformationProvider  provider)
inlinestatic

The create default processor.

Аргументы
providerThe provider.
Возвращает
The CompoundExpressionTreeProcessor.

◆ CreateQueryParser()

static IQueryParser ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.CreateQueryParser ( )
inlinestatic

The create query parser.

Возвращает
The IQueryParser.

◆ ExpressionMethodEquals()

static bool ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.ExpressionMethodEquals ( MethodCallExpression  expression,
string  name,
Type[]  args 
)
inlinestatic

Проверка равен ли метод из expression заданному параметрами name и args.

Аргументы
expressionExpression.
nameимя метода.
argsмассив типов аргументов метода.
Возвращает
The bool.

◆ GetCompareWithNullFunction()

static Function ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetCompareWithNullFunction ( ExpressionType  exprType,
object  par 
)
inlinestatic

The get compare with null function.

Аргументы
exprTypeThe expr type.
parThe par.
Возвращает
The Function.

◆ GetFalseFunc()

static Function ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetFalseFunc ( )
inlinestatic

The get false func.

Возвращает
The Function.

◆ GetFuncNameByExpressionType()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetFuncNameByExpressionType ( ExpressionType  exprType)
inlinestatic

The get func name by expression type.

Аргументы
exprTypeThe expr type.
Возвращает
The string.
Исключения
Exception

◆ GetFunctionAndParam()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetFunctionAndParam ( object  p1,
object  p2,
out Function  func,
out string  stringVal 
)
inlinestatic

The get function and param.

Аргументы
p1The p 1.
p2The p 2.
funcThe func.
stringValThe string val.

◆ GetFunctionByName()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetFunctionByName ( string  name)
inlinestatic

возвращает lcs функцию по имени функции C#.

Аргументы
nameимя функции из C#.
Возвращает
функция lcs.
Исключения
MethodSignatureExceptionв lcs нет аналога этой функции.

◆ GetLikePatternByFunctionName()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetLikePatternByFunctionName ( string  name)
inlinestatic

Получение шаблона для функции Like, куда будет вставлена строка поиска, по имени функции.

Аргументы
nameИмя функции.
Возвращает
Шаблон, соответствующий имени функции.
Исключения
ExceptionЕсли передано имя функции, для которой неизвестен шаблон, то пройдёт исключение.

◆ GetNameForDynamicView()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetNameForDynamicView ( Type  dataObjectType)
inlinestatic

Формируем динамическое имя для представления на основе типа.

Аргументы
dataObjectTypeТип объекта данных, для представления которого формируется имя.
Возвращает
Сформированное имя.

◆ GetObjectPropertyValue()

static MemberInfo ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetObjectPropertyValue ( object  obj,
string  propertyName 
)
inlinestatic

The get object property value.

Аргументы
objThe obj.
propertyNameThe property name.
Возвращает
The PropertyInfo.

◆ GetParamBinaryFunc()

static Function ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetParamBinaryFunc ( ExpressionType  exprType,
object  par2,
object  par1 
)
inlinestatic

The get param binary func.

Аргументы
exprTypeThe expr type.
par1The par 1.
par2The par 2.
Возвращает
The Function.
Исключения
MethodSignatureException

◆ GetSqlWherePattern()

static string ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetSqlWherePattern ( int  startIndex,
int  count 
)
inlinestatic

The get sql where pattern.

Аргументы
startIndexThe start index.
countThe count.
Возвращает
The string.

◆ GetTrueFunc()

static Function ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.GetTrueFunc ( )
inlinestatic

The get true func.

Возвращает
The Function.

◆ IsExactFunction()

static bool ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.IsExactFunction ( object  f,
string  fName 
)
inlinestatic

Проверяет, что объект - функция с определенным именем.

Аргументы
f
fName
Возвращает
The bool.

◆ MinimalRegexCheck()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.MinimalRegexCheck ( string  regexString)
inlinestatic

Минимальная проверка шаблона регулярных выражений: то, что он вообще валиден, и то, что в нём нет символов, которые нельзя перевести в sql-like.

Аргументы
regexStringШаблон регулярного выражения.

◆ MinimalSqlCheck()

static void ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.MinimalSqlCheck ( string  sqlString)
inlinestatic

Минимальная проверка шаблона sql-like: то, что в нём нет символов, которые пока нельзя перевести в Regex и обратно.

Аргументы
sqlStringШаблон поиска в sql-like.

◆ TryExecuteBinaryOberation()

static object ICSSoft.STORMNET.Business.LINQProvider.UtilsLcs.TryExecuteBinaryOberation ( ExpressionType  exprType,
object  par2,
object  par1 
)
inlinestatic

Попытка скомпилировать бинарное выражение и вместо сложного выражения записать в lcs уже простую константу.

Аргументы
exprTypeТип выражения (Add, Subtract, Multiply, Divide).
par2
par1
Возвращает