Exemplo n.º 1
0
        public async Task <QuickItem> ReturnQuickItems(RoleItem role)
        {
            log.Debug("Returning QuickItems for {0}", role.Name);
            var db = new SQLiteConnection(mainDB);

            if (role == null)
            {
                return(new QuickItem());
            }
            List <QuickItemDBPull> CommandList = new List <QuickItemDBPull>();
            SQLiteCommand          pullall     = new SQLiteCommand();

            pullall.CommandText = string.Format("SELECT * FROM {0}", role.QuickItem_Table);
            pullall.Connection  = db;
            log.Debug(pullall.CommandText);

            try
            {
                db.Open();
                SQLiteDataReader reader = pullall.ExecuteReader();
                while (await reader.ReadAsync())
                {
                    CommandList.Add(new QuickItemDBPull()
                    {
                        Verbage = reader["QuickNotes_Verbage"].ToString(), Root_Folder = reader["QuickNotes_Root_Folder"].ToString(), Sub_Folder_1 = reader["QuickNotes_1"].ToString(), Sub_Folder_2 = reader["QuickNotes_2"].ToString(), Sub_Folder_3 = reader["QuickNotes_3"].ToString(), Sub_Folder_4 = reader["QuickNotes_4"].ToString(), Sub_Folder_5 = reader["QuickNotes_5"].ToString(), Sub_Folder_6 = reader["QuickNotes_6"].ToString(), Sub_Folder_7 = reader["QuickNotes_7"].ToString(), Sub_Folder_8 = reader["QuickNotes_8"].ToString(), Sub_Folder_9 = reader["QuickNotes_9"].ToString(), Sub_Folder_10 = reader["QuickNotes_10"].ToString()
                    });
                }
                db.Close();
            }
            catch (Exception e)
            {
                log.Error(e);
                Model.ExceptionReporting.Email(e);
                db.Close();
            }

            List <QuickItemDBPull> Root_uniqueitems = CommandList.GroupBy(s => s.Root_Folder).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub1uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_1).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub2uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_2).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub3uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_3).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub4uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_4).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub5uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_5).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub6uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_6).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub7uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_7).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub8uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_8).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub9uniqueitems  = CommandList.GroupBy(s => s.Sub_Folder_9).Select(p => p.First()).ToList();
            List <QuickItemDBPull> Sub10uniqueitems = CommandList.GroupBy(s => s.Sub_Folder_10).Select(p => p.First()).ToList();

            #region Fill Tree
            var root = new QuickItem()
            {
                Title = "Menu"
            };

            if (Root_uniqueitems.Count > 1)
            {
                foreach (QuickItemDBPull item in Root_uniqueitems)
                {
                    QuickItem Root_Item = new QuickItem()
                    {
                        Title = item.Root_Folder, Content = item.Verbage
                    };
                    if (Sub1uniqueitems.Count > 1)
                    {
                        foreach (QuickItemDBPull item1 in Sub1uniqueitems)
                        {
                            QuickItem Sub_Item_1 = new QuickItem()
                            {
                                Title = item1.Sub_Folder_1, Content = item1.Verbage
                            };

                            if (item1.Root_Folder == Root_Item.Title && item1.Sub_Folder_1 != string.Empty)
                            {
                                Root_Item.SubItems.Add(Sub_Item_1);
                            }
                            if (Sub2uniqueitems.Count > 1)
                            {
                                foreach (QuickItemDBPull item2 in Sub2uniqueitems)
                                {
                                    QuickItem Sub_Item_2 = new QuickItem()
                                    {
                                        Title = item2.Sub_Folder_2, Content = item2.Verbage
                                    };

                                    if (item2.Sub_Folder_1 == Sub_Item_1.Title && item2.Sub_Folder_2 != string.Empty)
                                    {
                                        Sub_Item_1.SubItems.Add(Sub_Item_2);
                                    }
                                    if (Sub3uniqueitems.Count > 1)
                                    {
                                        foreach (QuickItemDBPull item3 in Sub3uniqueitems)
                                        {
                                            QuickItem Sub_Item_3 = new QuickItem()
                                            {
                                                Title = item3.Sub_Folder_3, Content = item3.Verbage
                                            };

                                            if (item3.Sub_Folder_2 == Sub_Item_2.Title && item3.Sub_Folder_3 != string.Empty)
                                            {
                                                Sub_Item_2.SubItems.Add(Sub_Item_3);
                                            }
                                            if (Sub4uniqueitems.Count > 1)
                                            {
                                                foreach (QuickItemDBPull item4 in Sub4uniqueitems)
                                                {
                                                    QuickItem Sub_Item_4 = new QuickItem()
                                                    {
                                                        Title = item4.Sub_Folder_4, Content = item4.Verbage
                                                    };

                                                    if (item4.Sub_Folder_3 == Sub_Item_3.Title && item4.Sub_Folder_4 != string.Empty)
                                                    {
                                                        Sub_Item_3.SubItems.Add(Sub_Item_4);
                                                    }
                                                    if (Sub5uniqueitems.Count > 1)
                                                    {
                                                        foreach (QuickItemDBPull item5 in Sub5uniqueitems)
                                                        {
                                                            QuickItem Sub_Item_5 = new QuickItem()
                                                            {
                                                                Title = item5.Sub_Folder_5, Content = item5.Verbage
                                                            };

                                                            if (item5.Sub_Folder_4 == Sub_Item_4.Title && item5.Sub_Folder_5 != string.Empty)
                                                            {
                                                                Sub_Item_4.SubItems.Add(Sub_Item_5);
                                                            }
                                                            if (Sub6uniqueitems.Count > 1)
                                                            {
                                                                foreach (QuickItemDBPull item6 in Sub6uniqueitems)
                                                                {
                                                                    QuickItem Sub_Item_6 = new QuickItem()
                                                                    {
                                                                        Title = item6.Sub_Folder_6, Content = item6.Verbage
                                                                    };

                                                                    if (item6.Sub_Folder_5 == Sub_Item_5.Title && item6.Sub_Folder_6 != string.Empty)
                                                                    {
                                                                        Sub_Item_5.SubItems.Add(Sub_Item_6);
                                                                    }
                                                                    if (Sub7uniqueitems.Count > 1)
                                                                    {
                                                                        foreach (QuickItemDBPull item7 in Sub7uniqueitems)
                                                                        {
                                                                            QuickItem Sub_Item_7 = new QuickItem()
                                                                            {
                                                                                Title = item7.Sub_Folder_7, Content = item7.Verbage
                                                                            };

                                                                            if (item7.Sub_Folder_6 == Sub_Item_6.Title && item7.Sub_Folder_7 != string.Empty)
                                                                            {
                                                                                Sub_Item_6.SubItems.Add(Sub_Item_7);
                                                                            }
                                                                            if (Sub8uniqueitems.Count > 1)
                                                                            {
                                                                                foreach (QuickItemDBPull item8 in Sub8uniqueitems)
                                                                                {
                                                                                    QuickItem Sub_Item_8 = new QuickItem()
                                                                                    {
                                                                                        Title = item8.Sub_Folder_8, Content = item8.Verbage
                                                                                    };

                                                                                    if (item8.Sub_Folder_7 == Sub_Item_7.Title && item8.Sub_Folder_8 != string.Empty)
                                                                                    {
                                                                                        Sub_Item_7.SubItems.Add(Sub_Item_8);
                                                                                    }
                                                                                    if (Sub9uniqueitems.Count > 1)
                                                                                    {
                                                                                        foreach (QuickItemDBPull item9 in Sub9uniqueitems)
                                                                                        {
                                                                                            QuickItem Sub_Item_9 = new QuickItem()
                                                                                            {
                                                                                                Title = item9.Sub_Folder_9, Content = item9.Verbage
                                                                                            };

                                                                                            if (item9.Sub_Folder_8 == Sub_Item_8.Title && item9.Sub_Folder_9 != string.Empty)
                                                                                            {
                                                                                                Sub_Item_8.SubItems.Add(Sub_Item_9);
                                                                                            }
                                                                                            if (Sub10uniqueitems.Count > 1)
                                                                                            {
                                                                                                foreach (QuickItemDBPull item10 in Sub10uniqueitems)
                                                                                                {
                                                                                                    QuickItem Sub_Item_10 = new QuickItem()
                                                                                                    {
                                                                                                        Title = item10.Sub_Folder_10, Content = item10.Verbage
                                                                                                    };

                                                                                                    if (item10.Sub_Folder_9 == Sub_Item_9.Title && item10.Sub_Folder_10 != string.Empty)
                                                                                                    {
                                                                                                        Sub_Item_9.SubItems.Add(Sub_Item_10);
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    root.SubItems.Add(Root_Item);
                }
            }

            return(root);

            #endregion
        }
Exemplo n.º 2
0
        public async Task <Siteitem> ReturnSiteItems(RoleItem role)
        {
            log.Debug("Getting SiteItems for {0}", role.Name);
            var db = new SQLiteConnection(mainDB);

            if (role == null)
            {
                return(new Siteitem());
            }

            List <SiteDBPull> SiteCommandList = new List <SiteDBPull>();

            SQLiteCommand pullall = new SQLiteCommand();

            pullall.CommandText = string.Format("SELECT * FROM {0}", role.SiteItem_Table);
            pullall.Connection  = db;
            log.Debug(pullall.CommandText);

            try
            {
                db.Open();
                SQLiteDataReader reader = pullall.ExecuteReader();
                while (await reader.ReadAsync())
                {
                    SiteCommandList.Add(new SiteDBPull()
                    {
                        URL = reader["URL"].ToString(), Parent = reader["Parent"].ToString(), Child_1 = reader["Child_1"].ToString(), Child_2 = reader["Child_2"].ToString()
                    });
                }
                db.Close();
            }
            catch (Exception e)
            {
                log.Error(e);
                var temp = Helpers.MetroMessageBox.Show("ERMAHGERD ERER!", e.ToString());
                Model.ExceptionReporting.Email(e);
                db.Close();
            }


            List <SiteDBPull> Root_uniqueitems = SiteCommandList.GroupBy(s => s.Parent).Select(p => p.First()).ToList();
            List <SiteDBPull> Site1uniqueitems = SiteCommandList.GroupBy(s => s.Child_1).Select(p => p.First()).ToList();
            List <SiteDBPull> Site2uniqueitems = SiteCommandList.GroupBy(s => s.Child_2).Select(p => p.First()).ToList();

            #region Fill Site
            var root = new Siteitem()
            {
                Title = "Menu"
            };

            if (Root_uniqueitems.Count > 1)
            {
                foreach (SiteDBPull item in Root_uniqueitems)
                {
                    Siteitem Root_Item = new Siteitem()
                    {
                        Title = item.Parent, Content = item.URL
                    };
                    if (Site1uniqueitems.Count > 1)
                    {
                        foreach (SiteDBPull item1 in Site1uniqueitems)
                        {
                            Siteitem Sub_Item_1 = new Siteitem()
                            {
                                Title = item1.Child_1, Content = item1.URL
                            };

                            if (item1.Parent == Root_Item.Title && item1.Child_1 != string.Empty)
                            {
                                Root_Item.SubItems.Add(Sub_Item_1);
                            }

                            if (Site2uniqueitems.Count > 1)
                            {
                                foreach (SiteDBPull item2 in Site2uniqueitems)
                                {
                                    Siteitem Sub_Item_2 = new Siteitem()
                                    {
                                        Title = item2.Child_2, Content = item2.URL
                                    };

                                    if (item2.Child_1 == Sub_Item_1.Title && item2.Child_2 != string.Empty)
                                    {
                                        Sub_Item_1.SubItems.Add(Sub_Item_2);
                                    }
                                }
                            }
                        }
                    }
                    root.SubItems.Add(Root_Item);
                }
            }
            Sorting(root);
            root.SubItems = new ObservableCollection <Siteitem>(root.SubItems.OrderBy(n => n.Title));
            return(root);

            #endregion
        }