Beispiel #1
0
        public void OnSelectedItemViewNameChanged()
        {
            if (SelectedItem == null)
            {
                return;
            }
            ModelViewForeignKey foreignKey = SelectedItem as ModelViewForeignKey;

            if (foreignKey == null)
            {
                return;
            }
            //foreignKey.IsAssinging = true;
            foreignKey.ViewName = SelectedItemViewName;
            //foreignKey.IsAssinging = false;
            if (foreignKey.ScalarProperties == null)
            {
                foreignKey.ScalarProperties = new ObservableCollection <ModelViewProperty>();
            }
            if (string.IsNullOrEmpty(foreignKey.ViewName))
            {
                return;
            }
            if (foreignKey.ScalarProperties.Count > 0)
            {
                return;
            }
            ModelViewSerializable modelViewSerializable = ModelViews.FirstOrDefault(mv => mv.ViewName == foreignKey.ViewName);

            if (modelViewSerializable.ScalarProperties == null)
            {
                return;
            }
            modelViewSerializable.ScalarProperties.ForEach(mv => foreignKey.ScalarProperties.Add(mv.ModelViewPropertySerializableAssingTo(new ModelViewProperty())));
            bool isRequired = foreignKey.ModelViewForeignKeyIsRequired();

            foreach (ModelViewProperty prop in foreignKey.ScalarProperties)
            {
                prop.IsRequiredInView = prop.IsRequiredInView && isRequired;
            }
            foreignKey.IsAssinging      = true;
            foreignKey.ForeignKeyPrefix = foreignKey.NavigationName + modelViewSerializable.ViewName;
            foreignKey.IsAssinging      = false;
            foreignKey.OnModelViewForeignKeyPrefixChanged();
            foreignKey.ModelViewForeignKeyUpdateForeignKeyNameChain();
        }
Beispiel #2
0
        public void OnForeignKeySelected(ModelViewForeignKey foreignKey)
        {
            if (ModelViews == null)
            {
                ModelViews = new ObservableCollection <ModelViewSerializable>();
            }
            if (foreignKey == null)
            {
                ModelViews.Clear();
                return;
            }
            if (ModelViews.Any(mv => ((mv.RootEntityFullClassName != foreignKey.NavigationEntityFullName) || (mv.RootEntityUniqueProjectName != foreignKey.NavigationEntityUniqueProjectName))))
            {
                ModelViews.Clear();
            }
            if (CurrentDbContext == null)
            {
                return;
            }
            if (CurrentDbContext.ModelViews == null)
            {
                return;
            }
            List <ModelViewSerializable> result = CurrentDbContext.ModelViews
                                                  .Where(mv => (mv.RootEntityFullClassName == foreignKey.NavigationEntityFullName) && (mv.RootEntityUniqueProjectName == foreignKey.NavigationEntityUniqueProjectName))
                                                  .ToList();

            if (result != null)
            {
                if (result.Count != ModelViews.Count)
                {
                    result.ForEach(r =>
                    {
                        if (!ModelViews.Any(mv => mv.ViewName == r.ViewName))
                        {
                            ModelViews.Add(r);
                        }
                    });
                }
            }
        }