public void Handle(PageCreated @event) { foreach (var menuId in @event.MenuIds) { var command = new AddMenuItem { SiteId = @event.SiteId, MenuId = menuId, MenuItemId = Guid.NewGuid(), Type = MenuItemType.Page, PageId = @event.AggregateRootId, Text = !string.IsNullOrEmpty(@event.Title) ? @event.Title : @event.Name }; foreach (var languageId in _languageRepository.GetLanguagesIdList(@event.SiteId)) { command.MenuItemLocalisations.Add(new MenuItemLocalisation { LanguageId = languageId }); } _commandSender.Send <AddMenuItem, Menu>(command); } }
private void RibbonControl_Loaded(object sender, RoutedEventArgs e) { AddMenuItem addMenuItem = new AddMenuItem();//Class_Initialize类就是创建菜单的那个 addMenuItem.CreateRibbon(); //Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; //ed.WriteMessage("RibbonControlLoaded ...."); }
public IActionResult AddItem(Guid id, [FromBody] AddMenuItem model) { model.SiteId = SiteId; model.MenuId = id; model.MenuItemId = Guid.NewGuid(); _commandSender.Send <AddMenuItem, Menu>(model); return(new NoContentResult()); }
public async Task <IActionResult> AddItem(Guid id, [FromBody] AddMenuItem model) { model.SiteId = SiteId; model.MenuId = id; model.MenuItemId = Guid.NewGuid(); await Task.Run(() => _commandSender.Send <AddMenuItem, Menu>(model)); return(new NoContentResult()); }
public static Menu Menu(Guid siteId, Guid id, string name, string itemText, string itemTextLocalised, Guid menuItemId = new Guid(), Guid languageId = new Guid()) { if (menuItemId == Guid.Empty) { menuItemId = Guid.NewGuid(); } if (languageId == Guid.Empty) { languageId = Guid.NewGuid(); } var createCommand = new CreateMenu { SiteId = siteId, Id = id, Name = name }; var createValidatorMock = new Mock <IValidator <CreateMenu> >(); createValidatorMock.Setup(x => x.Validate(createCommand)).Returns(new ValidationResult()); var menu = Domain.Menus.Menu.CreateNew(createCommand, createValidatorMock.Object); var addItemCommand = new AddMenuItem { SiteId = menu.SiteId, MenuId = menu.Id, MenuItemId = menuItemId, Type = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = itemText, Title = "Title", MenuItemLocalisations = new List <MenuItemLocalisation> { new MenuItemLocalisation { LanguageId = languageId, Text = itemTextLocalised, Title = "Title 1" } } }; var addItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addItemValidatorMock.Setup(x => x.Validate(addItemCommand)).Returns(new ValidationResult()); menu.AddMenuItem(addItemCommand, addItemValidatorMock.Object); return(menu); }
public void Setup() { _menu = new Menu(); var addMenuItemCommand = new AddMenuItem { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), Type = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemLocalisation> { new MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var addMenuItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItemCommand)).Returns(new ValidationResult()); _menu.AddMenuItem(addMenuItemCommand, addMenuItemValidatorMock.Object); _command = new RemoveMenuItem { MenuId = _menu.Id, MenuItemId = addMenuItemCommand.MenuItemId }; _validatorMock = new Mock <IValidator <RemoveMenuItem> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _menu.RemoveMenuItem(_command, _validatorMock.Object); _event = _menu.Events.OfType <MenuItemRemoved>().SingleOrDefault(); }
public MenuItem(AddMenuItem cmd, int sortOrder) : base(cmd.MenuItemId) { MenuId = cmd.MenuId; SortOrder = sortOrder; Type = cmd.Type; PageId = cmd.PageId; Link = cmd.Link; Text = cmd.Text; Title = cmd.Title; Status = MenuItemStatus.Active; SetLocalisations(cmd.MenuItemLocalisations); SetPermisisons(cmd.MenuItemPermissions); }
public void Should_have_validation_error_if_menu_item_id_is_empty() { var addMenuItem = new AddMenuItem { MenuItemId = Guid.Empty }; var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new AddMenuItemValidator(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.MenuItemId, addMenuItem); }
public MenuItem(AddMenuItem cmd, int sortOrder) : base(cmd.MenuItemId) { MenuId = cmd.MenuId; SortOrder = sortOrder; MenuItemType = cmd.MenuItemType; PageId = cmd.PageId; Link = cmd.Link; Text = cmd.Text; Title = cmd.Title; Status = MenuItemStatus.Active; foreach (var item in cmd.MenuItemLocalisations) { AddLocalisation(item.LanguageId, item.Text, item.Title); } }
public void Should_validate_command_and_update_menu() { var command = new AddMenuItem { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var menu = new Menu(); var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(command.SiteId, command.MenuId)).Returns(menu); menuRepositoryMock.Setup(x => x.Update(menu)); var validatorMock = new Mock <IValidator <AddMenuItem> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createMenuHandler = new AddMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); createMenuHandler.Handle(command); validatorMock.Verify(x => x.Validate(command)); menuRepositoryMock.Verify(x => x.Update(menu)); }
public void Should_throw_exception_if_menu_not_found() { var command = new AddMenuItem { MenuId = Guid.NewGuid() }; var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(command.MenuId)).Returns((Menu)null); var validatorMock = new Mock <IValidator <AddMenuItem> >(); var handler = new AddMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => handler.Handle(command)); }
public void Should_throw_exception_when_validation_fails() { var command = new AddMenuItem { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(new Menu()); var validatorMock = new Mock <IValidator <AddMenuItem> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> { new ValidationFailure("Id", "Id Error") })); var createMenuHandler = new AddMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => createMenuHandler.Handle(command)); }
public void Setup() { _menu = new Menu(); _command = new AddMenuItem { SiteId = _menu.SiteId, MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; _validatorMock = new Mock <IValidator <AddMenuItem> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _menu.AddMenuItem(_command, _validatorMock.Object); _menuItem = _menu.MenuItems.FirstOrDefault(c => c.Id == _command.MenuItemId); _firstMenuItemLocalisation = _menuItem.MenuItemLocalisations.FirstOrDefault(); _event = _menu.Events.OfType <MenuItemAdded>().SingleOrDefault(); }
public void AddMenuItem(AddMenuItem cmd, IValidator <AddMenuItem> validator) { if (MenuItems.FirstOrDefault(x => x.Id == cmd.MenuItemId) != null) { throw new Exception("Menu item already added"); } validator.ValidateCommand(cmd); var sortOrder = MenuItems.Count(x => x.ParentId == Guid.Empty) + 1; var newMenuItem = new MenuItem(cmd, sortOrder);; AddEvent(new MenuItemAdded { SiteId = SiteId, AggregateRootId = Id, Name = Name, MenuItem = newMenuItem }); }
public void Setup() { var createMenuCommand = new CreateMenu { SiteId = Guid.NewGuid(), Id = Guid.NewGuid(), Name = "My Menu" }; var createMenuValidatorMock = new Mock <IValidator <CreateMenu> >(); createMenuValidatorMock.Setup(x => x.Validate(createMenuCommand)).Returns(new ValidationResult()); _menu = Menu.CreateNew(createMenuCommand, createMenuValidatorMock.Object); var addMenuItem1 = new AddMenuItem { SiteId = _menu.SiteId, MenuId = _menu.Id, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = Guid.NewGuid(), Text = "Menu Item 1" }; var addMenuItem2 = new AddMenuItem { SiteId = _menu.SiteId, MenuId = _menu.Id, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = Guid.NewGuid(), Text = "Menu Item 2" }; var addMenuItem3 = new AddMenuItem { SiteId = _menu.SiteId, MenuId = _menu.Id, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = Guid.NewGuid(), Text = "Menu Item 3" }; var addMenuItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItem1)).Returns(new ValidationResult()); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItem2)).Returns(new ValidationResult()); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItem3)).Returns(new ValidationResult()); _menu.AddMenuItem(addMenuItem1, addMenuItemValidatorMock.Object); _menu.AddMenuItem(addMenuItem2, addMenuItemValidatorMock.Object); _menu.AddMenuItem(addMenuItem3, addMenuItemValidatorMock.Object); _command = new ReorderMenuItems { Id = _menu.Id, MenuItems = new List <ReorderMenuItems.MenuItem> { new ReorderMenuItems.MenuItem { Id = addMenuItem1.MenuItemId }, new ReorderMenuItems.MenuItem { Id = addMenuItem3.MenuItemId, ParentId = addMenuItem1.MenuItemId }, new ReorderMenuItems.MenuItem { Id = addMenuItem2.MenuItemId, ParentId = addMenuItem1.MenuItemId } } }; var validatorMock = new Mock <IValidator <ReorderMenuItems> >(); validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _menu.ReorderMenuItems(_command, validatorMock.Object); _menuItem1 = _menu.MenuItems.FirstOrDefault(x => x.Id == addMenuItem1.MenuItemId); _menuItem2 = _menu.MenuItems.FirstOrDefault(x => x.Id == addMenuItem2.MenuItemId); _menuItem3 = _menu.MenuItems.FirstOrDefault(x => x.Id == addMenuItem3.MenuItemId); }
public void Should_update_menu_when_remove_menu_item() { var createMenuCommand = new CreateMenu { SiteId = Guid.NewGuid(), Id = Guid.NewGuid(), Name = "My Menu" }; var createMenuValidatorMock = new Mock <IValidator <CreateMenu> >(); createMenuValidatorMock.Setup(x => x.Validate(createMenuCommand)).Returns(new ValidationResult()); var menu = Menu.CreateNew(createMenuCommand, createMenuValidatorMock.Object); var addMenuItemCommand = new AddMenuItem { SiteId = menu.SiteId, MenuId = menu.Id, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var addMenuItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItemCommand)).Returns(new ValidationResult()); menu.AddMenuItem(addMenuItemCommand, addMenuItemValidatorMock.Object); var command = new RemoveMenuItem { MenuId = menu.Id, MenuItemId = menu.MenuItems.FirstOrDefault().Id }; var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(menu); menuRepositoryMock.Setup(x => x.Update(It.IsAny <Menu>())); var validatorMock = new Mock <IValidator <RemoveMenuItem> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createMenuHandler = new RemoveMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); createMenuHandler.Handle(command); menuRepositoryMock.Verify(x => x.Update(It.IsAny <Menu>())); }