Example #1
0
        protected virtual void Delete(object persisted, NavigationEntry parentNavigation, HashSet <object> visited)
        {
            var args = _eventManager.OnEntityDeleting(persisted, parentNavigation);

            EntityEntry entry = GetEntry(args.Entity);

            entry.State = EntityState.Deleted;
            visited.Add(entry.Entity);

            foreach (NavigationEntry navigationEntry in entry.Navigations)
            {
                if (navigationEntry.Metadata.IsOwned()) //recursive deletion for owned properties.
                {
                    if (navigationEntry.CurrentValue != null)
                    {
                        if (navigationEntry.Metadata.IsCollection())
                        {
                            foreach (object item in (IEnumerable)navigationEntry.CurrentValue)
                            {
                                Delete(item, navigationEntry, visited); //delete collection item.
                            }
                        }
                        else
                        {
                            if (!visited.Contains(navigationEntry.CurrentValue))
                            {
                                Delete(navigationEntry.CurrentValue, navigationEntry, visited); //delete reference.
                            }
                        }
                    }
                }
            }

            _eventManager.OnEntityDeleted(entry, parentNavigation);
        }
        private IEnumerable <AuditLogDetail> CreateComplexTypeLogDetails(string propertyName)
        {
            NavigationEntry entryMember = DbEntry.Member(propertyName) as NavigationEntry;

            if (entryMember != null)
            {
                Type complexTypeObj = entryMember.CurrentValue.GetType();

                foreach (PropertyInfo pi in complexTypeObj.GetProperties())
                {
                    string complexTypePropertyName = $"{propertyName}_{pi.Name}";
                    object complexTypeOrigValue    = OriginalValue(propertyName);
                    object complexTypeNewValue     = CurrentValue(propertyName);

                    object origValue = complexTypeOrigValue == null ? null : pi.GetValue(complexTypeOrigValue);
                    object newValue  = complexTypeNewValue == null ? null : pi.GetValue(complexTypeNewValue);

                    Comparator comparator = ComparatorFactory.GetComparator(complexTypeObj);

                    if (!comparator.AreEqual(newValue, origValue))
                    {
                        yield return(new AuditLogDetail
                        {
                            PropertyName = complexTypePropertyName,
                            OriginalValue = origValue?.ToString(),
                            NewValue = newValue?.ToString(),
                            Log = _log
                        });
                    }
                }
            }
        }
Example #3
0
        /// <inheritdoc />
        public virtual async Task DeleteAsync(TId id, CancellationToken cancellationToken)
        {
            _traceWriter.LogMethodStart(new
            {
                id
            });

            // This enables OnWritingAsync() to fetch the resource, which adds it to the change tracker.
            // If so, we'll reuse the tracked resource instead of a placeholder resource.
            var emptyResource = _resourceFactory.CreateInstance <TResource>();

            emptyResource.Id = id;

            await _resourceDefinitionAccessor.OnWritingAsync(emptyResource, OperationKind.DeleteResource, cancellationToken);

            using var collector = new PlaceholderResourceCollector(_resourceFactory, _dbContext);
            TResource resource = collector.CreateForId <TResource, TId>(id);

            foreach (RelationshipAttribute relationship in _resourceGraph.GetRelationships <TResource>())
            {
                // Loads the data of the relationship, if in EF Core it is configured in such a way that loading the related
                // entities into memory is required for successfully executing the selected deletion behavior.
                if (RequiresLoadOfRelationshipForDeletion(relationship))
                {
                    NavigationEntry navigation = GetNavigationEntry(resource, relationship);
                    await navigation.LoadAsync(cancellationToken);
                }
            }

            _dbContext.Remove(resource);

            await SaveChangesAsync(cancellationToken);

            await _resourceDefinitionAccessor.OnWriteSucceededAsync(resource, OperationKind.DeleteResource, cancellationToken);
        }
        /// <inheritdoc />
        public virtual async Task DeleteAsync(TId id, CancellationToken cancellationToken)
        {
            _traceWriter.LogMethodStart(new
            {
                id
            });

            using var collector = new PlaceholderResourceCollector(_resourceFactory, _dbContext);
            TResource resource = collector.CreateForId <TResource, TId>(id);

            foreach (RelationshipAttribute relationship in _resourceGraph.GetRelationships <TResource>())
            {
                // Loads the data of the relationship, if in EF Core it is configured in such a way that loading the related
                // entities into memory is required for successfully executing the selected deletion behavior.
                if (RequiresLoadOfRelationshipForDeletion(relationship))
                {
                    NavigationEntry navigation = GetNavigationEntry(resource, relationship);
                    await navigation.LoadAsync(cancellationToken);
                }
            }

            _dbContext.Remove(resource);

            await SaveChangesAsync(cancellationToken);
        }
        private static int GetReferenceCount(NavigationEntry navigation)
        {
            if (!navigation.IsLoaded)
            {
                return(0);
            }

            var value = navigation.CurrentValue;

            if (value == null)
            {
                return(0);
            }

            if (!navigation.Metadata.IsCollection)
            {
                return(1);
            }

            var count = 0;

            foreach (var _ in (IEnumerable)value)
            {
                count++;
            }

            return(count);
        }
Example #6
0
        private bool ShouldLoad(object entity, string navigationName, out NavigationEntry navigationEntry)
        {
            if (_disposed)
            {
                Logger.LazyLoadOnDisposedContextWarning(Context, entity, navigationName);
            }
            else if (Context.ChangeTracker.LazyLoadingEnabled)
            {
                var entityEntry = Context.Entry(entity);
                navigationEntry = entityEntry.Navigation(navigationName);

                if (entityEntry.State == EntityState.Detached)
                {
                    var value = navigationEntry.CurrentValue;
                    if (value == null ||
                        (navigationEntry.Metadata.IsCollection() &&
                         !((IEnumerable)value).Any()))
                    {
                        Logger.DetachedLazyLoadingWarning(Context, entity, navigationName);
                    }
                }
                else if (!navigationEntry.IsLoaded)
                {
                    Logger.NavigationLazyLoading(Context, entity, navigationName);

                    return(true);
                }
            }

            navigationEntry = null;
            return(false);
        }
        public NavigationEntryViewModel(IViewModelDependencies dependencies, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
            : base(dependencies, dataCtx, parent, screen)
        {
            if (screen == null) throw new ArgumentNullException("screen");

            _screen = screen;
            _screen.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_screen_PropertyChanged);
        }
Example #8
0
 private void ListView_ItemClick(object sender, ItemClickEventArgs e)
 {
     if (e.ClickedItem is NavigationEntry)
     {
         NavigationEntry entry = (NavigationEntry)e.ClickedItem;
         rootFrame.Navigate(entry.Destination);
     }
 }
Example #9
0
        public void OnLoadingStateChange(
            IWebBrowser browserControl,
            LoadingStateChangedEventArgs loadingStateChangedArgs)
        {
            Action <LoadingStateChangedEventArgs> loadingStateChange = this.LoadingStateChange;

            if (loadingStateChange != null)
            {
                loadingStateChange(loadingStateChangedArgs);
            }
            if (loadingStateChangedArgs.IsLoading)
            {
                return;
            }
            Cef.UIThreadTaskFactory.StartNew((Action)(() =>
            {
                IBrowserHost host = browserControl.GetBrowser().GetHost();
                if (host.IsDisposed)
                {
                    return;
                }
                if (loadingStateChangedArgs.Browser.IsDisposed)
                {
                    return;
                }
                try
                {
                    if (browserControl.GetBrowser().IsPopup)
                    {
                        if (!loadingStateChangedArgs.Browser.MainFrame.Url.ToLower().StartsWith("https://"))
                        {
                            return;
                        }
                        Action <bool> connectionChanged = this.IsSecureConnectionChanged;
                        if (connectionChanged == null)
                        {
                            return;
                        }
                        connectionChanged(true);
                    }
                    else
                    {
                        NavigationEntry visibleNavigationEntry = host.GetVisibleNavigationEntry();
                        Action <bool> connectionChanged = this.IsSecureConnectionChanged;
                        if (connectionChanged == null)
                        {
                            return;
                        }
                        connectionChanged(visibleNavigationEntry.SslStatus.IsSecureConnection);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine((object)ex);
                }
            }));
        }
 public WebHistoryEntry(NavigationEntry navigationEntry)
 {
     Current         = navigationEntry.Current;
     Kind            = navigationEntry.Kind;
     VisitedAt       = navigationEntry.VisitedAt;
     WebUri          = navigationEntry.WebUri;
     NativePageParam = navigationEntry.NativePageParam;
     NativePageType  = navigationEntry.NativePageType;
 }
Example #11
0
        public void Navigate(NavigationEntry navigationEntry)
        {
            if (navigationEntry == null)
            {
                throw new ArgumentNullException("navigationEntry");
            }

            SlideDirection             = SlideDirection.Forward;
            _navigationJournal.Current = navigationEntry;
            CommandManager.InvalidateRequerySuggested();
        }
Example #12
0
        internal NavigationEntry Push(GwenForm form, bool notify = true)
        {
            var entry = new NavigationEntry(form);

            Stack.Push(entry);
            if (notify && OnFormAdded != null)
            {
                OnFormAdded(this, entry);
            }
            return(entry);
        }
Example #13
0
        public EntityAddingEventArgs OnEntityAdding(object detached, NavigationEntry navigation)
        {
            EntityAddingEventArgs args = new EntityAddingEventArgs
            {
                Entity = detached,
                ParentNavigationEntry = navigation
            };

            _entityAdding.Raise(this, args);
            return(args);
        }
Example #14
0
        public EntityAttachedEventArgs OnEntityAttached(EntityEntry persisted, NavigationEntry navigation)
        {
            EntityAttachedEventArgs args = new EntityAttachedEventArgs
            {
                EntityEntry           = persisted,
                ParentNavigationEntry = navigation
            };

            _entityAttached.Raise(this, args);
            return(args);
        }
Example #15
0
        //internal void PopToRoot()
        //{
        //    if (!IsEmpty)
        //    {
        //        var first = Stack.First().form;
        //        this.Replace(first);
        //    }
        //}

        internal void Replace(GwenForm form)
        {
            Clear();
            var entry = new NavigationEntry(form, true);

            Stack.Push(entry);
            if (OnFormAdded != null)
            {
                OnFormAdded(this, entry);
            }
        }
Example #16
0
        public EntityDeletingEventArgs OnEntityDeleting(object persisted, NavigationEntry navigation)
        {
            EntityDeletingEventArgs args = new EntityDeletingEventArgs
            {
                Entity = persisted,
                ParentNavigationEntry = navigation
            };

            _entityDeleting.Raise(this, args);
            return(args);
        }
Example #17
0
        public EntityDeletedEventArgs OnEntityDeleted(EntityEntry entry, NavigationEntry navigation)
        {
            EntityDeletedEventArgs args = new EntityDeletedEventArgs
            {
                EntityEntry           = entry,
                ParentNavigationEntry = navigation
            };

            _entityDeleted.Raise(this, args);
            return(args);
        }
Example #18
0
        protected virtual EntityEntry Attach(object detached, NavigationEntry parentNavigation)
        {
            var args = _eventManager.OnEntityAttaching(detached, parentNavigation);

            EntityEntry persisted = GetEntry(detached);

            if (persisted.State != EntityState.Added && persisted.State != EntityState.Deleted)
            {
                persisted.State = EntityState.Unchanged;
            }

            return(_eventManager.OnEntityAttached(persisted, parentNavigation).EntityEntry);
        }
        public NavigationEntryViewModel(IViewModelDependencies dependencies, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
            : base(dependencies, dataCtx, parent, screen)
        {
            if (screen == null) throw new ArgumentNullException("screen");

            if (CurrentIdentity == null) throw new UnresolvableIdentityException();

            if (screen.Groups.Count != 0 && !CurrentIdentity.IsAdmininistrator() && !screen.Groups.Any(g => CurrentIdentity.Groups.Any(grp => grp.ExportGuid == g.ExportGuid)))
                throw new InvalidOperationException("The current identity is not allowed to see this screen. The screen should not be displayed! Check your filters.");

            _screen = screen;
            _screen.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_screen_PropertyChanged);
        }
Example #20
0
 private static void CallRecursivelyWithPropertyValue(DbContext context, NavigationEntry navigation, dynamic value)
 {
     if (navigation.Metadata.IsCollection())
     {
         foreach (dynamic item in value)
         {
             LoadAllPropetiesRecursively(context, item);
         }
     }
     else
     {
         LoadAllPropetiesRecursively(context, navigation.CurrentValue);
     }
 }
 public static void OnNavigationChanged(NavigationEntry navigation)
 {
     if (navigation.IsModified && navigation.CurrentValue == null && navigation.Metadata is INavigation metadata)
     {
         foreach (var property in metadata.ForeignKey.Properties)
         {
             var foreignKey = navigation.EntityEntry.Property(property.Name);
             if (foreignKey.Metadata.IsNullable && foreignKey.CurrentValue != null)
             {
                 foreignKey.CurrentValue = null;
             }
         }
     }
 }
Example #22
0
 internal bool RemoveEntry(NavigationEntry entry, bool notify = true)
 {
     try
     {
         if (Stack.Contains(entry))
         {
             Stack.Remove(entry);
             if (notify && OnFormRemoved != null)
             {
                 OnFormRemoved(this, entry);
             }
             return(true);
         }
     }
     catch (Exception e)
     {
         Function.Log(e.ToString());
     }
     return(false);
 }
Example #23
0
        private bool ShouldLoad(object entity, string navigationName, out NavigationEntry entry)
        {
            if (_disposed)
            {
                Logger.LazyLoadOnDisposedContextWarning(Context, entity, navigationName);
            }
            else if (Context.ChangeTracker.LazyLoadingEnabled)
            {
                entry = Context.Entry(entity).Navigation(navigationName);
                if (!entry.IsLoaded)
                {
                    Logger.NavigationLazyLoading(Context, entity, navigationName);

                    return(true);
                }
            }

            entry = null;
            return(false);
        }
Example #24
0
        public NavigationEntryViewModel(IViewModelDependencies dependencies, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
            : base(dependencies, dataCtx, parent, screen)
        {
            if (screen == null)
            {
                throw new ArgumentNullException("screen");
            }

            if (CurrentIdentity == null)
            {
                throw new UnresolvableIdentityException();
            }

            if (screen.Groups.Count != 0 && !CurrentIdentity.IsAdmininistrator() && !screen.Groups.Any(g => CurrentIdentity.Groups.Any(grp => grp.ExportGuid == g.ExportGuid)))
            {
                throw new InvalidOperationException("The current identity is not allowed to see this screen. The screen should not be displayed! Check your filters.");
            }

            _screen = screen;
            _screen.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_screen_PropertyChanged);
        }
Example #25
0
        private bool ShouldLoad(object entity, string navigationName, out NavigationEntry navigationEntry)
        {
            if (_loadedStates != null &&
                _loadedStates.TryGetValue(navigationName, out var loaded) &&
                loaded)
            {
                navigationEntry = null;
                return(false);
            }

            if (_disposed)
            {
                Logger.LazyLoadOnDisposedContextWarning(Context, entity, navigationName);
            }
            else if (Context.ChangeTracker.LazyLoadingEnabled)
            {
                // Set early to avoid recursive loading overflow
                SetLoaded(entity, navigationName, loaded: true);

                var entityEntry         = Context.Entry(entity); // Will use local-DetectChanges, if enabled.
                var tempNavigationEntry = entityEntry.Navigation(navigationName);

                if (entityEntry.State == EntityState.Detached)
                {
                    Logger.DetachedLazyLoadingWarning(Context, entity, navigationName);
                }
                else if (!tempNavigationEntry.IsLoaded)
                {
                    Logger.NavigationLazyLoading(Context, entity, navigationName);

                    navigationEntry = tempNavigationEntry;

                    return(true);
                }
            }

            navigationEntry = null;
            return(false);
        }
    public void SetData(List <T> data, T selectedEntry)
    {
        tabs.Clear();
        foreach (var entry in data)
        {
            var button   = Instantiate(prefab, container);
            var navEntry = new NavigationEntry(entry, button);

            button.onClick.AddListener(() => Select(navEntry));
            button.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = entry.Title;
            tabs.Add(navEntry);

            if (entry == selectedEntry)
            {
                Select(navEntry);
            }
        }

        if (tabs.All(tabs => !tabs.isSelected))
        {
            throw new System.Exception("Navigation instantiated without selecting an entry!");
        }
    }
    public static void Work_with_a_single_navigation_2()
    {
        Console.WriteLine($">>>> Sample: {nameof(Work_with_a_single_navigation_2)}");
        Console.WriteLine();

        Helpers.RecreateCleanDatabase();
        Helpers.PopulateDatabase();

        using var context = new BlogsContext();

        var blog = context.Blogs.Include(e => e.Posts).Single(e => e.Id == 1);

        #region Work_with_a_single_navigation_2a
        CollectionEntry <Blog, Post> collectionEntry1 = context.Entry(blog).Collection(e => e.Posts);
        CollectionEntry <Blog, Post> collectionEntry2 = context.Entry(blog).Collection <Post>("Posts");
        CollectionEntry collectionEntry3 = context.Entry(blog).Collection("Posts");
        #endregion

        #region Work_with_a_single_navigation_2b
        NavigationEntry navigationEntry = context.Entry(blog).Navigation("Posts");
        #endregion

        Console.WriteLine();
    }
Example #28
0
 public static string ConstructTitleKey(NavigationEntry nav)
 {
     return nav.Module.Namespace + "." + nav.Title;
 }
 public NavigationActionViewModel(IViewModelDependencies dependencies, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
     : base(dependencies, dataCtx, parent, screen)
 {
 }
        private bool IsComplexType(string propertyName)
        {
            NavigationEntry entryMember = DbEntry.Member(propertyName) as NavigationEntry;

            return(entryMember != null);
        }
Example #31
0
 public NavigationActionViewModel(IViewModelDependencies dependencies, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
     : base(dependencies, dataCtx, parent, screen)
 {
 }
Example #32
0
        public static NavigationEntryViewModel Fetch(IViewModelFactory ModelFactory, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
        {
            if (ModelFactory == null)
            {
                throw new ArgumentNullException("ModelFactory");
            }
            if (screen == null)
            {
                throw new ArgumentNullException("screen");
            }

            return((NavigationEntryViewModel)dataCtx.GetViewModelCache(ModelFactory.PerfCounter).LookupOrCreate(screen, () =>
            {
                if (screen.ViewModelDescriptor != null)
                {
                    try
                    {
                        var t = screen.ViewModelDescriptor.ViewModelRef.AsType(true);
                        return ModelFactory.CreateViewModel <NavigationEntryViewModel.Factory>(t).Invoke(dataCtx, parent, screen);
                    }
                    catch (Exception ex)
                    {
                        Logging.Client.WarnFormat("Unable to create ViewModel from Descriptor: {0}", ex);
                    }
                }
                return (NavigationEntryViewModel)screen.GetDefaultViewModel(dataCtx, parent);
            }));
        }
Example #33
0
        public void Bootstrap()
        {
            var _fs = new Filesystem(Directory.GetCurrentDirectory());

            Console.WriteLine("[I] Bootstrap...");
            AccessProvider.ProviderResponse     += Handle_Provider_Event;
            ServerProvider.ProviderResponse     += Handle_Provider_Event;
            ClientProvider.ProviderResponse     += Handle_Provider_Event;
            UserProvider.ProviderResponse       += Handle_Provider_Event;
            NewsProvider.ProviderResponse       += Handle_Provider_Event;
            NavigationProvider.ProviderResponse += Handle_Provider_Event;

            if (!Directory.Exists(Path.Combine(_fs.Root, "Providers")))
            {
                Directory.CreateDirectory(Path.Combine(_fs.Root, "Providers"));
                Console.WriteLine("[I] Provider installation needed..., Bootstrapping them...");
            }

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "System",
                Level    = ulong.MaxValue,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Server-Administratoren",
                Level    = byte.MaxValue,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Server-Operatoren",
                Level    = 250,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Seiten-Administroren",
                Level    = 245,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Seiten-Operatoren",
                Level    = 240,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "News-Administratoren",
                Level    = 235,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "News-Operatoren",
                Level    = 230,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Sendeplan-Administratoren",
                Level    = 225,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Sendeplan-Operatoren",
                Level    = 220,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Stream-Administratoren",
                Level    = 215,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Stream-Operatoren",
                Level    = 210,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Seiten-Mitglied",
                Level    = 1,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            AccessProvider.Add(Guid.NewGuid(), new GroupEntry <Guid>()
            {
                Active   = true,
                Name     = "Unregistriert",
                Level    = byte.MinValue,
                Locked   = true,
                Provider = AccessProvider.Name,
            });

            #region "News Provider - Installation"


            var news_user = Guid.Empty;
            var xmlDoc    = new XmlDocument();
            xmlDoc.Load(NewsProvider.InstallScript);
            var newsEntries = xmlDoc.SelectNodes("Namiono/Install/Users/User");

            for (var i = 0; i < newsEntries.Count; i++)
            {
                var res_level = ulong.MinValue;


                var user = new UserEntry <Guid>
                {
                    Id                                 = newsEntries[i].Attributes["Id"] == null?Guid.NewGuid() : Guid.Parse(newsEntries[i].Attributes["Id"].Value),
                                             Name      = newsEntries[i].Attributes["Name"].Value,
                                             Service   = bool.Parse(newsEntries[i].Attributes["Service"].Value == "0" ? "false" : "true"),
                                             Moderator = bool.Parse(newsEntries[i].Attributes["Moderator"].Value == "0" ? "false" : "true"),
                                             Locked    = bool.Parse(newsEntries[i].Attributes["Locked"].Value == "0" ? "false" : "true"),
                                             Password  = MD5.GetMD5Hash(newsEntries[i].Attributes["Password"].Value),
                                             Provider  = UserProvider.Name
                };

                if (newsEntries[i].Attributes["Level"] != null)
                {
                    ulong.TryParse(newsEntries[i].Attributes["Level"].Value, out res_level);
                    user.Level = res_level;
                }

                news_user = user.Id;

                UserProvider.Add(user.Id, user);
            }

            newsEntries = xmlDoc.SelectNodes("Namiono/Install/Entries/Entry");

            for (var i = 0; i < newsEntries.Count; i++)
            {
                var res_level = ulong.MinValue;

                var news = new NewsEntry <Guid>
                {
                    Name      = newsEntries[i].Attributes["Name"].Value,
                    Service   = bool.Parse(newsEntries[i].Attributes["Service"].Value == "0" ? "false" : "true"),
                    Moderator = bool.Parse(newsEntries[i].Attributes["Moderator"].Value == "0" ? "false" : "true"),
                    Locked    = bool.Parse(newsEntries[i].Attributes["Locked"].Value == "0" ? "false" : "true"),
                    OutPut    = newsEntries[i].Attributes["Output"].Value.Replace("[[NL]]", "<br />"),
                    Url       = newsEntries[i].Attributes["Url"].Value,
                    Author    = news_user
                };

                if (newsEntries[i].Attributes["Level"] != null)
                {
                    ulong.TryParse(newsEntries[i].Attributes["Level"].Value, out res_level);
                    news.Level = res_level;
                }


                NewsProvider.Add(Guid.NewGuid(), news);
            }

            #endregion

            #region "Navigation Provider - Installation"
            xmlDoc.Load(NavigationProvider.InstallScript);

            var navEntries = xmlDoc.SelectNodes("Namiono/Install/Entries/Entry");

            for (var i = 0; i < navEntries.Count; i++)
            {
                var res_level = ulong.MinValue;

                var nav = new NavigationEntry <Guid>
                {
                    Name      = navEntries[i].Attributes["Name"].Value,
                    Service   = bool.Parse(navEntries[i].Attributes["Service"].Value == "0" ? "false" : "true"),
                    Moderator = bool.Parse(navEntries[i].Attributes["Moderator"].Value == "0" ? "false" : "true"),
                    Locked    = bool.Parse(navEntries[i].Attributes["Locked"].Value == "0" ? "false" : "true"),
                    OutPut    = navEntries[i].Attributes["Output"].Value.Replace("[[NL]]", "<br />"),
                    Url       = navEntries[i].Attributes["Url"].Value,
                    Author    = Guid.Empty
                };

                if (navEntries[i].Attributes["Level"] != null)
                {
                    ulong.TryParse(navEntries[i].Attributes["Level"].Value, out res_level);
                    nav.Level = res_level;
                }


                NavigationProvider.Add(Guid.NewGuid(), nav);
            }


            NavigationProvider.Add(Guid.NewGuid(), new NavigationEntry <Guid>()
            {
                Name = "Mitglieder", Active = true, Locked = false, Level = 1, Frame = "#content", Provider = UserProvider.Name, Action = "show"
            });
            NavigationProvider.Add(Guid.NewGuid(), new NavigationEntry <Guid>()
            {
                Name = "News", Active = true, Locked = false, Level = 1, Frame = "#content", Provider = NewsProvider.Name, Action = "show"
            });

            #endregion
            AccessProvider.Bootstrap();
            ServerProvider.Bootstrap();
            ClientProvider.Bootstrap();
            UserProvider.Bootstrap();
            NewsProvider.Bootstrap();
            NavigationProvider.Bootstrap();



            Console.WriteLine("[I] Starting ...");
        }
Example #34
0
        private void CallThisMethodRecusivelyWithChildEntity(DbContext context, NavigationEntry property, HashSet <EntityKeys> alreadyTraversed)
        {
            EntityEntry entry = context.Entry(property.CurrentValue);

            RemoveEntitiesNotInUpdateRecusively(context, entry, alreadyTraversed);
        }
 public NavigationEntryEditorViewModel(IViewModelDependencies appCtx, IZetboxContext dataCtx, ViewModel parent, NavigationEntry navEntry)
     : base(appCtx, dataCtx, parent)
 {
     this.NavEntry = navEntry;
 }
Example #36
0
        public static NavigationEntryViewModel Fetch(IViewModelFactory ModelFactory, IZetboxContext dataCtx, ViewModel parent, NavigationEntry screen)
        {
            if (ModelFactory == null) throw new ArgumentNullException("ModelFactory");
            if (screen == null) throw new ArgumentNullException("screen");

            return (NavigationEntryViewModel)dataCtx.GetViewModelCache(ModelFactory.PerfCounter).LookupOrCreate(screen, () =>
            {
                if (screen.ViewModelDescriptor != null)
                {
                    try
                    {
                        var t = Type.GetType(screen.ViewModelDescriptor.ViewModelTypeRef, true);
                        return ModelFactory.CreateViewModel<NavigationEntryViewModel.Factory>(t).Invoke(dataCtx, parent, screen);
                    }
                    catch (Exception ex)
                    {
                        Logging.Client.WarnFormat("Unable to create ViewModel from Descriptor: {0}", ex);
                    }
                }
                return (NavigationEntryViewModel)screen.GetDefaultViewModel(dataCtx, parent);
            });
        }
Example #37
0
 public static string ConstructColorKey(NavigationEntry nav)
 {
     return nav.Module.Namespace + "." + nav.Title + "_color";
 }