Esempio n. 1
0
        /// <summary>
        /// Добавить пункт меню.
        /// </summary>
        /// <param name="menuId">Идентификатор меню</param>
        /// <param name="menuItemAddingDto">Данные добавляемого пункта меню</param>
        /// <exception cref="MenuNotFoundException">
        /// Генерируется в случае, если меню с таким идентификатором не найдено.
        /// </exception> 
        public void AddMenuItem(int menuId, MenuItemAddingDto menuItemAddingDto)
        {
            Menu menu = GetMenuById(menuId);

            MenuItem menuItem = new AddingDtoToMenuItemMapper().Map(menuItemAddingDto);
            menu.AddMenuItem(menuItem);

            _menuRepository.Update(menu);
            _menuRepository.Save();
        }
Esempio n. 2
0
        /// <summary>
        /// Добавить вложенный пункт меню внутрь другого пункта меню.
        /// </summary>
        /// <param name="menuId">Идентификатор меню</param>
        /// <param name="parentMenuItemId">Идентификатор родительского пункта меню</param>
        /// <param name="menuItemAddingDto">Данные добавляемого пункта меню</param>
        /// <exception cref="MenuNotFoundException">
        /// Генерируется в случае, если меню с таким идентификатором не найдено.
        /// </exception> 
        /// <exception cref="MenuItemNotFoundException">
        /// Генерируется в случае, если родительский пункт меню не найден.
        /// </exception>
        /// <exception cref="ArgumentNullException">
        /// Передан объект null в качестве аргумента
        /// </exception>
        public void AddMenuItem(int menuId, int parentMenuItemId, MenuItemAddingDto menuItemAddingDto)
        {
            if (menuItemAddingDto == null)
                throw new ArgumentNullException("menuItemAddingDto");

            Menu menu = GetMenuById(menuId);
            MenuItem parentMenuItem = menu.SearchMenuItem(parentMenuItemId);

            if (parentMenuItem == null)
            {
                throw new MenuItemNotFoundException(
                    String.Format("Пункт меню с идентификатором {0} внутри меню {1} не найден!",
                        parentMenuItemId,
                        menuId));
            }

            MenuItem addingMenuItem = new AddingDtoToMenuItemMapper().Map(menuItemAddingDto);
            parentMenuItem.AddMenuItem(addingMenuItem);

            _menuRepository.Update(menu);
            _menuRepository.Save();
        }