Ejemplo n.º 1
0
        public TItem TryLocateItem(IEngineRepository <TItem> navRepository, object findValue)
        {
            TValue convertedValue = ConversionUtility.ConvertValue <TValue>(findValue);
            var    predicate      = IdentifierExpressionHelpers.GetIdentifierPredicate(_getLocatorValueExpression, convertedValue);

            return(navRepository.GetAllItems().Where(predicate).SingleOrDefault());
        }
Ejemplo n.º 2
0
 public Expression <Func <TItem, bool> > GetPredicate(string identifier)
 {
     try
     {
         TReturn convertedIdentifier = ConversionUtility.ConvertValue <TReturn>(identifier);
         return(IdentifierExpressionHelpers.GetIdentifierPredicate(_getterExpr, convertedIdentifier));
     }
     catch (Exception ex) when(ex is FormatException || ex is InvalidCastException)
     {
         // TODO hiding exception.. includes FormatException thrown in ConversionUtility
         return(null);
     }
 }
Ejemplo n.º 3
0
 public void SetNavItem(TParent parent, TNav item)
 {
     // TODO rename? not really anything to do with identifiers
     IdentifierExpressionHelpers.SetIdentifier(parent, _navigationExpression, item);
 }
 public MultiExpressionIdentifierInfo([NotNull] Expression <Func <TItem, IEnumerable <TReturn> > > getterExpr)
 {
     _getterExpr      = getterExpr ?? throw new ArgumentNullException(nameof(getterExpr));
     _predicateGetter = identifier => IdentifierExpressionHelpers.GetAnyIdentifierPredicate(_getterExpr, identifier);
 }