public static MenuEntity[] DataTableToBindEntitys(DataTable dt)
 {
     if (dt == null)
         return null;
     var results = new MenuEntity[dt.Rows.Count];
     for (int i = 0; i < dt.Rows.Count; i++)
     {
         results[i] = DataRowToBindEntity(dt.Rows[i]);
     }
     return results;
 }
 public void CreateEntity(MenuEntity entity)
 {
     base.UseTran((tran) =>
     {
         DbCommand cmd = base.Database.GetStoredProcCommand("P_CreateMenu");
         base.Database.AddInParameter(cmd, "MenuNo", DbType.String, entity.MenuNo);
         base.Database.AddInParameter(cmd, "PNo", DbType.String, entity.PNo);
         base.Database.AddInParameter(cmd, "MenuName", DbType.String, entity.MenuName);
         base.Database.AddInParameter(cmd, "Order", DbType.Int32, entity.Order);
         base.Database.AddInParameter(cmd, "Glyph", DbType.String, entity.Glyph);
         base.Database.AddInParameter(cmd, "OnClick", DbType.String, entity.OnClick);
         base.Database.AddInParameter(cmd, "KeyTip", DbType.String, entity.KeyTip);
         base.Database.AddInParameter(cmd, "MenuControl", DbType.String, entity.MenuControl);
         base.Database.ExecuteNonQuery(cmd, tran);
     });
 }
        public static MenuEntity DataRowToBindEntity(DataRow row)
        {
            if (row == null)
                return null;
            var result = new MenuEntity()
            {
                MenuNo = (string)(row["MenuNo"]),
                PNo = (string)(row["PNo"]),
                MenuName = (string)(row["MenuName"]),
                Order = (int)(row["Order"]),
                Glyph = (string)(row["Glyph"]),
                OnClick = (string)(row["OnClick"]),
                KeyTip = (string)(row["KeyTip"]),
                MenuControl = (string)(row["MenuControl"]),

            };
            return result;
        }
 static void CreateRibbonPageGroupFromMenuEntity(RibbonControl ribbon, RibbonPageHolder ribbonpageholder, MenuEntity entity)
 {
     if (ribbonpageholder == null || entity == null || ribbonpageholder.RibbonPage == null)
     {
         return;
     }
     List<RibbonPageGroupHolder> ribbonpagegroupholders = new List<RibbonPageGroupHolder>();
     var childEntitys = menus.Where(t => t.PNo == entity.MenuNo);
     RibbonPageGroupHolder ribbonpagegroupholder;
     foreach (var childEntity in childEntitys)
     {
         ribbonpagegroupholder = ConvertMenuEntityToRibbonPageGroup(childEntity);
         if (ribbonpagegroupholder != null)
         {
             CreateBarSubItemFromMenuEntity(ribbon, ribbonpagegroupholder, childEntity);
             CreateBarItemFromMenuEntity(ribbon, ribbonpagegroupholder, childEntity);
             ribbonpagegroupholders.Add(ribbonpagegroupholder);
         }
     }
     var groups = ribbonpagegroupholders.OrderBy(t => t.Order).Select(t => t.RibbonPageGroup).ToArray();
     ribbonpageholder.RibbonPage.Groups.AddRange(groups);
 }
 static void CreateBarSubItemFromMenuEntity(RibbonControl ribbon, RibbonPageGroupHolder ribbonpagegroupholder, MenuEntity entity)
 {
     if (ribbonpagegroupholder == null || entity == null || ribbonpagegroupholder.RibbonPageGroup == null)
         return;
     var childEntitys = menus.Where(t => t.PNo == entity.MenuNo);
     List<BarSubItemHolder> barsubitemholders = new List<BarSubItemHolder>();
     BarSubItemHolder barsubitemholder;
     foreach (var childEntity in childEntitys)
     {
         barsubitemholder = ConvertMenuEntityToBarSubItem(childEntity);
         if (barsubitemholder != null)
         {
             CreateBarItemFromMenuEntity(ribbon, barsubitemholder, childEntity);
             barsubitemholders.Add(barsubitemholder);
         }
     }
     var barsubitems = barsubitemholders.OrderBy(t => t.Order).Select(t => t.BarSubItem).ToArray();
     ribbonpagegroupholder.RibbonPageGroup.ItemLinks.AddRange(barsubitems);
 }
 static void CreateBarItemFromMenuEntity(RibbonControl ribbon, BarSubItemHolder barsubitemholder, MenuEntity entity)
 {
     if (barsubitemholder == null || entity == null || barsubitemholder.BarSubItem == null)
         return;
     List<BarItemHolder> barsubitemholders = new List<BarItemHolder>();
     var childEntitys = menus.Where(t => t.PNo == entity.MenuNo);
     BarSubItemHolder cbarsubitemholder;
     BarItemHolder baritemholder;
     foreach (var childEntity in childEntitys)
     {
         cbarsubitemholder = ConvertMenuEntityToBarSubItem(childEntity);
         if (cbarsubitemholder != null)
         {
             CreateBarItemFromMenuEntity(ribbon, cbarsubitemholder, childEntity);
             barsubitemholders.Add(new BarItemHolder() { Order = cbarsubitemholder.Order, BarItem = cbarsubitemholder.BarSubItem });
         }
         else
         {
             baritemholder = ConvertMenuEntityToBarItem(childEntity);
             if (baritemholder != null)
             {
                 ribbon.Items.Add(baritemholder.BarItem);
                 barsubitemholders.Add(baritemholder);
             }
         }
     }
     var baritems = barsubitemholders.OrderBy(t => t.Order).Select(t => t.BarItem).ToArray();
     barsubitemholder.BarSubItem.ItemLinks.AddRange(baritems);
 }
 static RibbonPageGroupHolder ConvertMenuEntityToRibbonPageGroup(MenuEntity entity)
 {
     if (entity.MenuControl.ToLower() != "ribbonpagegroup")
         return null;
     return new RibbonPageGroupHolder()
     {
         Order = entity.Order,
         RibbonPageGroup = new RibbonPageGroup()
         {
             Name = entity.MenuNo,
             Text = entity.MenuName
         }
     };
 }
 static BarSubItemHolder ConvertMenuEntityToBarSubItem(MenuEntity entity)
 {
     if (entity.MenuControl.ToLower() != "barsubitem")
         return null;
     var barsubitem = new BarSubItem()
     {
         Name = entity.MenuNo,
         Caption = entity.MenuName,
         RibbonStyle = ((DevExpress.XtraBars.Ribbon.RibbonItemStyles)(((DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large
             | DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText))))
     };
     barsubitem.ItemClick += barItem_ItemClick;
     if (!string.IsNullOrWhiteSpace(entity.Glyph))
     {
         var image = FengSharp.OneCardAccess.Infrastructure.WinForm.Resources.ResourceHelper.GetResource<System.Drawing.Image>(entity.Glyph);
         if (image != null)
             barsubitem.Glyph = image;
     }
     barsubitem.Tag = GetClickPara(entity.OnClick);
     return new BarSubItemHolder()
     {
         Order = entity.Order,
         BarSubItem = barsubitem
     };
 }