/// <summary> /// Adds a Data Source to a DataSourceConfig /// </summary> /// <param name="list">The DataSourceList where the DataSource will be add</param> /// <param name="source">The IQueryable to add</param> /// <param name="type"></param> /// <returns></returns> public static DataSourceConfig AddSource(this DataSourceRepository list, IQueryable source, Type type) { var config = new DataSourceConfig(source, type); list.Add(config); return(config); }
/// <summary> /// Verifies all the joins in the Repository /// </summary> /// <param name="repo"></param> /// <returns></returns> public static DataSourceRepository VerifyJoins(this DataSourceRepository repo) { foreach (var datasource in repo) { foreach (var join in datasource.Joins) { var fk = repo.FirstOrDefault(x => x.Name == join.Name2); if (fk == null) { continue; } var validJoin = fk.Joins.Any(x => x.Name2 == datasource.Name); if (validJoin == false) { fk.Joins.Add(new DataSourceJoinConfig(join.Name2, join.Key2, join.Name1, join.Key1)); } } } return(repo); }
/// <summary> /// Adds a generic Data Source to a DataSourceConfig /// </summary> /// <typeparam name="T">The DataSource Type</typeparam> /// <param name="list">The DataSourceList where the DataSource will be add</param> /// <param name="source">The IQueryable to add</param> /// <returns></returns> public static DataSourceConfig <T> AddSource <T>(this DataSourceRepository list, IQueryable <T> source) where T : class { var config = new DataSourceConfig <T>(source); list.Add(config); return(config); }