コード例 #1
0
        internal ObservableCollection <dhModule> GetUserSubMenu(dhDBnames objDBNames, dhAppPreference objAppPreference, dhUsers objuser, dhModule objdhModule)
        {
            DataTable temp        = new DataTable();
            blModule  ObjblModule = new blModule();
            dhModule  objModule   = new dhModule();
            ObservableCollection <dhModule> MenuModule = new ObservableCollection <dhModule>();

            if ((objAppPreference != null) && (objAppPreference.VEnableModules != "") && (objuser != null))
            {
                #region "Allowed Menu"

                objModule.AllowdModule = objAppPreference.VEnableModules;
                dsGeneral.dtPosModuleDataTable dtm = ObjblModule.GetModule(objDBNames, objModule);
                EnumerableRowCollection <dsGeneral.dtPosModuleRow> result2 = from r in dtm.AsEnumerable()
                                                                             where (r.Field <int>("iModuleParentID") == objdhModule.IModuleID) && (r.Field <bool>("bIsActive") == true)
                                                                             select r;
                // if there are any allowed
                int CountRow = result2.Count <dsGeneral.dtPosModuleRow>();
                if (CountRow > 0)
                {
                    DataTable dtResult2 = result2.CopyToDataTable();
                    ObservableCollection <dhModule> sequence = ReflectionUtility.DataTableToObservableCollection <dhModule>(dtResult2);
                    if (sequence.Count > 0)
                    {
                        foreach (dhModule Module in sequence)
                        {
                            string strDisplayName = Module.VDisplayName;
                            if (objuser.VAllowdModule == null)
                            {
                                if (objuser.VUserType == "Super")
                                {
                                    objuser.VAllowdModule = objAppPreference.VEnableModules;
                                }
                                else
                                {
                                    throw new ApplicationException("Disable User or have no rights.");
                                }
                            }

                            List <string> RootIds          = objuser.VAllowdModule.Split(',').ToList <string>();
                            string        RootAllowdUserID = RootIds.Distinct <string>().Cast <string>().Where(i => i.Equals(Module.IModuleID.ToString())).SingleOrDefault();

                            List <string> RootEnableModulesIds   = objAppPreference.VEnableModules.Split(',').ToList <string>();
                            string        RootAppEnableModulesId = RootEnableModulesIds.Distinct <string>().Cast <string>().Where(i => i.Equals(Module.IModuleID.ToString())).SingleOrDefault();
                            if ((RootAllowdUserID == null) || (RootAppEnableModulesId == null))
                            {
                                continue;
                            }
                            MenuModule.Add(Module);
                        }
                    }// end of dhModule sequence
                }



                #endregion
            }
            return(MenuModule);
        }
コード例 #2
0
        private void BuildAllowdModuleCheckBox()
        {
            StackPanel OuterStock = new StackPanel();
            //OuterStock. = new Thickness(0, 5, 15, -25);
            dhModule objModule = new dhModule();

            //          if (objUser != null)
            //       {

            #region "Allowed Menu"

            // objModule.AllowdModule = Globalized.objAppPreference.VEnableModules;
            dsGeneral.dtPosModuleDataTable dtm = iFacede.GetModule(Globalized.ObjDbName, objModule);
            EnumerableRowCollection <dsGeneral.dtPosModuleRow> result2 = from r in dtm.AsEnumerable()
                                                                         where (r.Field <int>("iModuleParentID") == 0)
                                                                         select r;
            int CountRow = result2.Count <dsGeneral.dtPosModuleRow>();
            if (CountRow > 0)
            {
                DataTable dtResult2 = result2.CopyToDataTable();
                ObservableCollection <dhModule> sequence = ReflectionUtility.DataTableToObservableCollection <dhModule>(dtResult2);
                if (sequence.Count > 0)
                {
                    foreach (dhModule Module in sequence)
                    {
                        GroupBox objGroup = new GroupBox();
                        objGroup.Header = Module.VDisplayName;
                        objGroup.Margin = new Thickness(0, 0, 0, 15);

                        #region "Grid"

                        Grid grid = new Grid();
                        //  grid.Width = 400;
                        // Create column definitions.
                        ColumnDefinition columnDefinition1 = new ColumnDefinition();
                        ColumnDefinition columnDefinition2 = new ColumnDefinition();
                        columnDefinition1.Width = new GridLength(200);
                        columnDefinition2.Width = new GridLength(200);
                        // Attached definitions to grid.
                        grid.ColumnDefinitions.Add(columnDefinition1);
                        grid.ColumnDefinitions.Add(columnDefinition2);

                        CheckBox cb = new CheckBox();
                        cb.Name    = Module.VModuleName.ToString() + Module.IModuleID.ToString();
                        cb.Content = Module.VDisplayName.ToString();
                        //   cb.Width = 100;
                        cb.Margin      = new Thickness(5, 5, 5, 5);
                        cb.DataContext = Module;
                        Binding myBinding = new Binding("BIsActive");
                        myBinding.Source = Module;
                        cb.SetBinding(CheckBox.IsCheckedProperty, myBinding);
                        cb.Tag = Module;

                        cb.AddHandler(CheckBox.CheckedEvent, new RoutedEventHandler(DynamicCheckBox_Checked));
                        cb.AddHandler(CheckBox.UncheckedEvent, new RoutedEventHandler(DynamicCheckBox_Unchecked));

                        RowDefinition rowDefinition1 = new RowDefinition();
                        rowDefinition1.Height = new GridLength(30);
                        grid.RowDefinitions.Add(rowDefinition1);

                        grid.Children.Add(cb);
                        Grid.SetColumn(cb, 0);
                        Grid.SetRow(cb, 0);

                        #endregion "Grid"

                        EnumerableRowCollection <dsGeneral.dtPosModuleRow> Filter = from r2 in dtm.AsEnumerable()
                                                                                    where (r2.Field <int>("iModuleParentID") == Module.IModuleID)
                                                                                    select r2;
                        int CountRowInner = result2.Count <dsGeneral.dtPosModuleRow>();
                        if (CountRowInner > 0)
                        {
                            DataTable dtFilter;
                            if (Filter.Count() > 0)
                            {
                                dtFilter = Filter.CopyToDataTable();
                            }
                            else
                            {
                                dtFilter = new DataTable();
                            }


                            ObservableCollection <dhModule> sequencefilter = ReflectionUtility.DataTableToObservableCollection <dhModule>(dtFilter);
                            if (sequencefilter.Count > 0)
                            {
                                // int Bool = 1;

                                int           row           = 1;
                                int           col           = 0;
                                RowDefinition rowDefinition = new RowDefinition();
                                rowDefinition.Height = new GridLength(30);
                                grid.RowDefinitions.Add(rowDefinition);

                                #region "Child Module"

                                foreach (dhModule SubModule in sequencefilter)
                                {
                                    //for (int i = 0; i < sequencefilter.Count ; i++)
                                    //{
                                    CheckBox NestedCb = new CheckBox();
                                    //NestedStp.Orientation = Orientation.Horizontal;
                                    NestedCb.Name    = "Sub" + SubModule.VModuleName.ToString() + SubModule.IModuleID.ToString();
                                    NestedCb.Content = SubModule.VDisplayName.ToString();
                                    NestedCb.Margin  = new Thickness(35, 5, 5, 5);
                                    if (col == 2)
                                    {
                                        row = row + 1;
                                        col = 0;
                                        RowDefinition rowDefinition3 = new RowDefinition();
                                        rowDefinition3.Height = new GridLength(30);
                                        grid.RowDefinitions.Add(rowDefinition3);
                                    }

                                    NestedCb.DataContext = Module;
                                    Binding mySubBinding = new Binding("BIsActive");
                                    mySubBinding.Source = SubModule;
                                    NestedCb.SetBinding(CheckBox.IsCheckedProperty, mySubBinding);
                                    NestedCb.Tag = SubModule;

                                    grid.Children.Add(NestedCb);
                                    Grid.SetColumn(NestedCb, col);
                                    Grid.SetRow(NestedCb, row);
                                    col += 1;
                                }

                                #endregion "Child Module"

                                objGroup.Content = grid;
                            }
                            OuterStock.Children.Add(objGroup);
                        }
                    }
                    RightsGrid.Children.Add(OuterStock);
                }
            }

            #endregion "Allowed Menu"

            //            }
        }