Пример #1
0
        public SaveMenuResponse PerformCreateNewMenu(SaveMenuRequest request)
        {
            SaveMenuResponse response = new SaveMenuResponse();
            var menu          = new Menu();
            var menuMenuItems = new List <MenuMenuItem>();

            try
            {
                using (var db = new CuddlyWombatEntities())
                {
                    db.Configuration.LazyLoadingEnabled   = false;
                    db.Configuration.ProxyCreationEnabled = false;

                    if (request.MenuID == 0)
                    {
                        menu.MenuID      = 0;
                        menu.Name        = request.Name;
                        menu.MenuTypeID  = request.MenuTypeID;
                        menu.Description = request.Description;
                        menu.DateCreated = DateTime.Now;
                        menu.IsUsed      = true;
                        db.Menus.Add(menu);
                        db.SaveChanges();
                    }
                    else
                    {
                        menu = (from m in db.Menus
                                where m.MenuID == request.MenuID
                                select m).FirstOrDefault();

                        menu.Name        = request.Name;
                        menu.MenuTypeID  = request.MenuTypeID;
                        menu.Description = request.Description;
                        menu.IsUsed      = true;

                        var allAssignedMenuItems = (from m in db.MenuMenuItems
                                                    where m.MenuID == request.MenuID
                                                    select m).ToList();

                        foreach (var selectedMenuItem in allAssignedMenuItems)
                        {
                            db.MenuMenuItems.Remove(selectedMenuItem);
                        }
                    }
                    foreach (var mi in request.MenuItemIDs)
                    {
                        var menuMenuItem = new MenuMenuItem()
                        {
                            MenuID     = menu.MenuID,
                            MenuItemID = mi
                        };
                        menuMenuItems.Add(menuMenuItem);
                    }
                    db.MenuMenuItems.AddRange(menuMenuItems);
                    db.SaveChanges();

                    response.Menus = (from m in db.Menus.Include("MenuType")
                                      select m).ToList();

                    foreach (var menu_ in response.Menus)
                    {
                        menu_.MenuType.Menus = null;

                        menu_.MenuItems = (from m in db.MenuMenuItems
                                           join mi in db.MenuItems on m.MenuItemID equals mi.MenuItemID
                                           where m.MenuID == menu.MenuID
                                           select mi).ToList();
                    }

                    response.MessageString   = "New Menu is successfully added to the database";
                    response.MessageStatusID = (byte)EMessageStatus.Success;
                }
            }
            catch (Exception ex)
            {
                response.MessageStatusID = (byte)EMessageStatus.Exception;
                response.MessageString   = ex.Message;
            }
            return(response);
        }
Пример #2
0
 private void Fire(object sender, EventArgs e)
 {
     MenuItem?.Invoke(Context).ContinueWith(t => MenuMenuItem.GetCurrentParent()?.InvokeLater(Update));
 }
 public virtual void RefreshItems()
 {
     if (this.IsRefreshingItems)
     {
         return;
     }
     this.IsRefreshingItems = true;
     try
     {
         this.MenuItemsAction.BeginUpdate();
         try
         {
             this.ClearItems(this.MenuItemsAction.Items);
             IModelMenuEditor menuEditor = base.Application.Model.Aurum().Menus().MenuEditor;
             foreach (IModelMenu current in menuEditor.Menus)
             {
                 if (MenuController.CheckMenuGroup(current))
                 {
                     MenuMenuItem menuMenuItem = new MenuMenuItem(current, null);
                     this.FillMenu(current, menuMenuItem);
                     this.MenuItemsAction.Items.Add(menuMenuItem);
                 }
             }
         }
         finally
         {
             this.MenuItemsAction.EndUpdate();
         }
         this.OnItemsInitialized();
     }
     finally
     {
         this.IsRefreshingItems = false;
     }
 }