master
 1using Notepad.Domain.Repositories;
 2using Notepad.Infrastructure.Extensions;
 3using Notepad.Presentation.Core;
 4using Notepad.Presentation.Model.Menu;
 5using Notepad.Presentation.Views.Menu;
 6
 7namespace Notepad.Presentation.Presenters.Menu {
 8    public interface IMainMenuPresenter : IPresenter {}
 9
10    public class MainMenuPresenter : IMainMenuPresenter {
11        private readonly IMainMenuView mainMenu;
12        private readonly IRepository<ISubMenu> repository;
13        private readonly ISubMenuItemComparer comparer;
14
15        public MainMenuPresenter(IMainMenuView mainMenu,
16                                 IRepository<ISubMenu> repository,
17                                 ISubMenuItemComparer comparer) {
18            this.mainMenu = mainMenu;
19            this.repository = repository;
20            this.comparer = comparer;
21        }
22
23        public void Initialize() {
24            foreach (var subMenuToAddToMainMenu in repository.All().SortedUsing(comparer)) {
25                mainMenu.Add(subMenuToAddToMainMenu);
26            }
27        }
28    }
29}