using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
public class Categories : BaseService<Database.Categories>
public class Users : BaseService<Database.Users>
public string Name {get;set;}
public string Name {get;set;}
public string Email {get;set;}
public string Name {get;set;}
public string Name {get;set;}
public string Email {get;set;}
public interface IBaseService<TObject> where TObject : class
ICollection<TObject> GetAll();
public class BaseService<TObject> : IBaseService<TObject>
public ICollection<TObject> GetAll()
throw new NotImplementedException();
public static DataAccess.Categories Categories => new DataAccess.Categories();
public static DataAccess.Users Users => new DataAccess.Users();
public static class DA<TDBModel>
public static BaseService<TDBModel> Base => new BaseService<TDBModel>();
public static BusinessLogic.Categories Categories => new BusinessLogic.Categories();
public static BusinessLogic.Users Users => new BusinessLogic.Users();
private Type testDetermineDatabaseModel()
switch(typeof(TModel).Name){
return typeof(Database.Categories);
return typeof(Database.Users);
public ICollection<TModel> testGetAll()
var databaseModel = testDetermineDatabaseModel();
return new List<TModel>();
private IBaseService<dynamic> baseService;
public dynamic DetermineDatabaseModel()
switch (typeof(TModel).Name)
return new BaseService<Database.Categories>();
return new BaseService<Database.Users>();
private IBaseService<TDbModel> GetBase<TDbModel>() where TDbModel : class
return new BaseService<TDbModel>();
public ICollection<TModel> GetAll()
ICollection<TModel> returnValue = new List<TModel>();
foreach (var item in GetBase<Database.Categories>().GetAll())
returnValue.Add((TModel)(object)item);
baseService = DetermineDatabaseModel();
foreach (var item in baseService.GetAll())
returnValue.Add((TModel)(object)item);