public static List <ClassViewModel> AddContext(ClassViewModel context, string area = "") { _contextNamespace = context.Namespace; // Lock so that parallel execution only uses this once at a time. lock (_lock) { var models = new List <ClassViewModel>(); foreach (var prop in context.Properties) { if ((prop.Type.IsCollection || prop.IsDbSet) && IsValidViewModelClass(prop.PureType.Name) && !prop.IsInternalUse) { var model = ReflectionRepository.GetClassViewModel(classType: prop.PureType, hasDbSet: prop.IsDbSet); if (model != null) { model.ContextPropertyName = prop.Name; model.OnContext = true; model.ContextPropertyName = prop.Name; models.Add(model); } } } // Check for other associated types that are not dbsets foreach (var model in models.ToList()) { AddChildModels(models, model); } return(models); } }
public IEnumerable <ClassViewModel> ClientDataSources(ReflectionRepository repo) => repo .DataSources .Where(d => d.DeclaredFor.Equals(this)) .Select(d => d.StrategyClass) .OrderBy(d => d.ClientTypeName);