@@ -63,12 +63,11 @@ public ICriterion CreateCriterion(ProjectionInfo rhs,
63
63
{
64
64
if ( _property != null && rhs . _property != null )
65
65
return ssFunc ( _property , rhs . _property ) ;
66
- else if ( _property != null )
66
+ if ( _property != null )
67
67
return spFunc ( _property , rhs . _projection ) ;
68
- else if ( rhs . _property != null )
68
+ if ( rhs . _property != null )
69
69
return psFunc ( _projection , rhs . _property ) ;
70
- else
71
- return ppFunc ( _projection , rhs . _projection ) ;
70
+ return ppFunc ( _projection , rhs . _projection ) ;
72
71
}
73
72
74
73
public T Create < T > ( Func < string , T > stringFunc , Func < IProjection , T > projectionFunc )
@@ -94,10 +93,9 @@ public string AsProperty()
94
93
{
95
94
if ( _property != null ) return _property ;
96
95
97
- if ( ! ( _projection is PropertyProjection ) )
98
- throw new Exception ( "Cannot determine property for " + _projection . ToString ( ) ) ;
99
-
100
- return ( ( PropertyProjection ) _projection ) . PropertyName ;
96
+ var propertyProjection = _projection as PropertyProjection ;
97
+ if ( propertyProjection == null ) throw new Exception ( "Cannot determine property for " + _projection ) ;
98
+ return propertyProjection . PropertyName ;
101
99
}
102
100
}
103
101
@@ -267,10 +265,9 @@ public static ProjectionInfo FindMemberProjection(Expression expression)
267
265
/// <returns>The name of the member property</returns>
268
266
public static string FindMemberExpression ( Expression expression )
269
267
{
270
- if ( expression is MemberExpression )
268
+ var memberExpression = expression as MemberExpression ;
269
+ if ( memberExpression != null )
271
270
{
272
- MemberExpression memberExpression = ( MemberExpression ) expression ;
273
-
274
271
if ( memberExpression . Expression . NodeType == ExpressionType . MemberAccess
275
272
|| memberExpression . Expression . NodeType == ExpressionType . Call )
276
273
{
@@ -283,30 +280,26 @@ public static string FindMemberExpression(Expression expression)
283
280
284
281
return FindMemberExpression ( memberExpression . Expression ) + "." + memberExpression . Member . Name ;
285
282
}
286
- else if ( IsConversion ( memberExpression . Expression . NodeType ) )
283
+ if ( IsConversion ( memberExpression . Expression . NodeType ) )
287
284
{
288
285
return ( FindMemberExpression ( memberExpression . Expression ) + "." + memberExpression . Member . Name ) . TrimStart ( '.' ) ;
289
286
}
290
- else
291
- {
292
- return memberExpression . Member . Name ;
293
- }
287
+
288
+ return memberExpression . Member . Name ;
294
289
}
295
290
296
- if ( expression is UnaryExpression )
291
+ var unaryExpression = expression as UnaryExpression ;
292
+ if ( unaryExpression != null )
297
293
{
298
- UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
299
-
300
294
if ( ! IsConversion ( unaryExpression . NodeType ) )
301
- throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
295
+ throw new Exception ( "Cannot interpret member from " + expression ) ;
302
296
303
297
return FindMemberExpression ( unaryExpression . Operand ) ;
304
298
}
305
299
306
- if ( expression is MethodCallExpression )
300
+ var methodCallExpression = expression as MethodCallExpression ;
301
+ if ( methodCallExpression != null )
307
302
{
308
- MethodCallExpression methodCallExpression = ( MethodCallExpression ) expression ;
309
-
310
303
if ( methodCallExpression . Method . Name == "GetType" )
311
304
return ClassMember ( methodCallExpression . Object ) ;
312
305
@@ -316,13 +309,13 @@ public static string FindMemberExpression(Expression expression)
316
309
if ( methodCallExpression . Method . Name == "First" )
317
310
return FindMemberExpression ( methodCallExpression . Arguments [ 0 ] ) ;
318
311
319
- throw new Exception ( "Unrecognised method call in expression " + expression . ToString ( ) ) ;
312
+ throw new Exception ( "Unrecognised method call in expression " + methodCallExpression ) ;
320
313
}
321
314
322
315
if ( expression is ParameterExpression )
323
316
return "" ;
324
317
325
- throw new Exception ( "Could not determine member from " + expression . ToString ( ) ) ;
318
+ throw new Exception ( "Could not determine member from " + expression ) ;
326
319
}
327
320
328
321
/// <summary>
@@ -343,10 +336,9 @@ public static string FindPropertyExpression(Expression expression)
343
336
/// <returns>Evaluated detached criteria</returns>
344
337
public static DetachedCriteria FindDetachedCriteria ( Expression expression )
345
338
{
346
- MethodCallExpression methodCallExpression = expression as MethodCallExpression ;
347
-
339
+ var methodCallExpression = expression as MethodCallExpression ;
348
340
if ( methodCallExpression == null )
349
- throw new Exception ( "right operand should be detachedQueryInstance.As<T>() - " + expression . ToString ( ) ) ;
341
+ throw new Exception ( "right operand should be detachedQueryInstance.As<T>() - " + expression ) ;
350
342
351
343
var criteriaExpression = Expression . Lambda ( methodCallExpression . Object ) . Compile ( ) ;
352
344
QueryOver detachedQuery = ( QueryOver ) criteriaExpression . DynamicInvoke ( ) ;
@@ -362,41 +354,38 @@ private static bool EvaluatesToNull(Expression expression)
362
354
363
355
private static System . Type FindMemberType ( Expression expression )
364
356
{
365
- if ( expression is MemberExpression )
357
+ var memberExpression = expression as MemberExpression ;
358
+ if ( memberExpression != null )
366
359
{
367
- MemberExpression memberExpression = ( MemberExpression ) expression ;
368
-
369
360
return memberExpression . Type ;
370
361
}
371
362
372
- if ( expression is UnaryExpression )
363
+ var unaryExpression = expression as UnaryExpression ;
364
+ if ( unaryExpression != null )
373
365
{
374
- UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
375
-
376
366
if ( ! IsConversion ( unaryExpression . NodeType ) )
377
- throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
367
+ throw new Exception ( "Cannot interpret member from " + expression ) ;
378
368
379
369
return FindMemberType ( unaryExpression . Operand ) ;
380
370
}
381
371
382
- if ( expression is MethodCallExpression )
372
+ var methodCallExpression = expression as MethodCallExpression ;
373
+ if ( methodCallExpression != null )
383
374
{
384
- var methodCallExpression = ( MethodCallExpression ) expression ;
385
375
return methodCallExpression . Method . ReturnType ;
386
376
}
387
377
388
- throw new Exception ( "Could not determine member type from " + expression . ToString ( ) ) ;
378
+ throw new Exception ( "Could not determine member type from " + expression ) ;
389
379
}
390
380
391
381
private static bool IsMemberExpression ( Expression expression )
392
382
{
393
383
if ( expression is ParameterExpression )
394
384
return true ;
395
385
396
- if ( expression is MemberExpression )
386
+ var memberExpression = expression as MemberExpression ;
387
+ if ( memberExpression != null )
397
388
{
398
- MemberExpression memberExpression = ( MemberExpression ) expression ;
399
-
400
389
if ( memberExpression . Expression == null )
401
390
return false ; // it's a member of a static class
402
391
@@ -407,12 +396,11 @@ private static bool IsMemberExpression(Expression expression)
407
396
return EvaluatesToNull ( memberExpression . Expression ) ;
408
397
}
409
398
410
- if ( expression is UnaryExpression )
399
+ var unaryExpression = expression as UnaryExpression ;
400
+ if ( unaryExpression != null )
411
401
{
412
- UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
413
-
414
402
if ( ! IsConversion ( unaryExpression . NodeType ) )
415
- throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
403
+ throw new Exception ( "Cannot interpret member from " + expression ) ;
416
404
417
405
return IsMemberExpression ( unaryExpression . Operand ) ;
418
406
}
@@ -536,18 +524,16 @@ private static ICriterion ProcessMemberExpression(Expression left, Expression ri
536
524
537
525
private static ICriterion ProcessAndExpression ( BinaryExpression expression )
538
526
{
539
- return
540
- NHibernate . Criterion . Restrictions . And (
541
- ProcessExpression ( expression . Left ) ,
542
- ProcessExpression ( expression . Right ) ) ;
527
+ return Restrictions . And (
528
+ ProcessExpression ( expression . Left ) ,
529
+ ProcessExpression ( expression . Right ) ) ;
543
530
}
544
531
545
532
private static ICriterion ProcessOrExpression ( BinaryExpression expression )
546
533
{
547
- return
548
- NHibernate . Criterion . Restrictions . Or (
549
- ProcessExpression ( expression . Left ) ,
550
- ProcessExpression ( expression . Right ) ) ;
534
+ return Restrictions . Or (
535
+ ProcessExpression ( expression . Left ) ,
536
+ ProcessExpression ( expression . Right ) ) ;
551
537
}
552
538
553
539
private static ICriterion ProcessBinaryExpression ( BinaryExpression expression )
@@ -572,7 +558,7 @@ private static ICriterion ProcessBinaryExpression(BinaryExpression expression)
572
558
return ProcessSimpleExpression ( expression ) ;
573
559
574
560
default :
575
- throw new Exception ( "Unhandled binary expression: " + expression . NodeType + ", " + expression . ToString ( ) ) ;
561
+ throw new Exception ( "Unhandled binary expression: " + expression . NodeType + ", " + expression ) ;
576
562
}
577
563
}
578
564
@@ -583,40 +569,39 @@ private static ICriterion ProcessBooleanExpression(Expression expression)
583
569
return Restrictions . Eq ( FindMemberExpression ( expression ) , true ) ;
584
570
}
585
571
586
- if ( expression is UnaryExpression )
572
+ var unaryExpression = expression as UnaryExpression ;
573
+ if ( unaryExpression != null )
587
574
{
588
- UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
589
-
590
575
if ( unaryExpression . NodeType != ExpressionType . Not )
591
- throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
576
+ throw new Exception ( "Cannot interpret member from " + expression ) ;
592
577
593
578
if ( IsMemberExpression ( unaryExpression . Operand ) )
594
579
return Restrictions . Eq ( FindMemberExpression ( unaryExpression . Operand ) , false ) ;
595
580
else
596
581
return Restrictions . Not ( ProcessExpression ( unaryExpression . Operand ) ) ;
597
582
}
598
583
599
- if ( expression is MethodCallExpression )
584
+ var methodCallExpression = expression as MethodCallExpression ;
585
+ if ( methodCallExpression != null )
600
586
{
601
- MethodCallExpression methodCallExpression = ( MethodCallExpression ) expression ;
602
587
return ProcessCustomMethodCall ( methodCallExpression ) ;
603
588
}
604
589
605
- if ( expression is TypeBinaryExpression )
590
+ var typeBinaryExpression = expression as TypeBinaryExpression ;
591
+ if ( typeBinaryExpression != null )
606
592
{
607
- TypeBinaryExpression typeBinaryExpression = ( TypeBinaryExpression ) expression ;
608
593
return Restrictions . Eq ( ClassMember ( typeBinaryExpression . Expression ) , typeBinaryExpression . TypeOperand . FullName ) ;
609
594
}
610
595
611
- throw new Exception ( "Could not determine member type from " + expression . NodeType + ", " + expression . ToString ( ) + ", " + expression . GetType ( ) ) ;
596
+ throw new Exception ( "Could not determine member type from " + expression . NodeType + ", " + expression + ", " + expression . GetType ( ) ) ;
612
597
}
613
598
614
599
private static string ClassMember ( Expression expression )
615
600
{
616
601
if ( expression . NodeType == ExpressionType . MemberAccess )
617
602
return FindMemberExpression ( expression ) + ".class" ;
618
- else
619
- return "class" ;
603
+
604
+ return "class" ;
620
605
}
621
606
622
607
public static string Signature ( MethodInfo methodInfo )
@@ -625,7 +610,7 @@ public static string Signature(MethodInfo methodInfo)
625
610
methodInfo = methodInfo . GetGenericMethodDefinition ( ) ;
626
611
627
612
return methodInfo . DeclaringType . FullName
628
- + ":" + methodInfo . ToString ( ) ;
613
+ + ":" + methodInfo ;
629
614
}
630
615
631
616
private static ICriterion ProcessCustomMethodCall ( MethodCallExpression methodCallExpression )
0 commit comments