public string GetEntityQuery(string entityName, EntityQueryType queryType, string parentEntityName = "")
        {
            if (entityName == "City")
            {
                switch (queryType)
                {
                case EntityQueryType.FindByKey:
                    return(selectCityByKey);

                case EntityQueryType.FindByString:
                    return(selectCityByString);

                default:
                    throw new ArgumentException("No query for this EntityQueryType");
                }
            }
            else if (entityName == "Order")
            {
                switch (queryType)
                {
                case EntityQueryType.FindByKey:
                    return(selectOrderByKey);

                case EntityQueryType.FindByString:
                    return("");

                case EntityQueryType.FindByParentKey:
                    if (parentEntityName == "City")
                    {
                        return(selectOrderByCityKey);
                    }
                    else
                    {
                        return("");
                    }

                default:
                    throw new ArgumentException("No query for this EntityQueryType");
                }
            }
            else
            {
                throw new ArgumentException($"No query for this EntityName: {entityName}");
            }
        }
        private TSetupEntityQuery GetSetupEntityQuery(string entityName, EntityQueryType queryType, IEntityConfig config, string parentEntityName = null)
        {
            TSetupEntityQuery res = new TSetupEntityQuery();

            res.QueryType = queryType;
            if (queryType == EntityQueryType.FindByParentKey)
            {
                res.ParentEntityName = parentEntityName;
                res.QuerySql         = config.GetEntityQuery(entityName, queryType, parentEntityName);
            }
            else if (queryType == EntityQueryType.FindDetailsByKey)
            {
                res.SortOrder = 2;
                res.QuerySql  = "select 2 res";
            }
            else
            {
                res.QuerySql  = config.GetEntityQuery(entityName, queryType);
                res.SortOrder = 1;
            }

            return(res);
        }
 public EntityQueryTypeClass(EntityQueryType queryType)
 {
     this.queryType = queryType;
 }
 /// <summary>
 /// Applies the EntityQueryType<> filter expression against the source
 /// </summary>
 /// <param name="source"></param>
 /// <param name="filter"></param>
 /// <typeparam name="TSource"></typeparam>
 /// <returns></returns>
 public static IEnumerable <TSource> Where <TSource>(this IEnumerable <TSource> source, EntityQueryType <TSource> filter)
 {
     if (filter.HasValue)
     {
         return(Queryable.Where(source.AsQueryable(), filter.Query));
     }
     return(source);
 }