Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 public IEnumerable <ClassViewModel> ClientDataSources(ReflectionRepository repo) => repo
 .DataSources
 .Where(d => d.DeclaredFor.Equals(this))
 .Select(d => d.StrategyClass)
 .OrderBy(d => d.ClientTypeName);