public void AddModule(PageModule pageModule) { var alreadyAddedPageModule = PageModules.FirstOrDefault(x => x.Id == pageModule.Id); if (alreadyAddedPageModule != null && alreadyAddedPageModule.Status != PageModuleStatus.Deleted) { throw new Exception("Module already added."); } var reorderedModules = new List <PageModuleAdded.ReorderedModule>(); foreach (var existingPageModule in PageModules.Where(x => x.Zone == pageModule.Zone && x.SortOrder >= pageModule.SortOrder)) { reorderedModules.Add(new PageModuleAdded.ReorderedModule { PageModuleId = existingPageModule.Id, Zone = existingPageModule.Zone, SortOrder = existingPageModule.SortOrder + 1 }); } AddEvent(new PageModuleAdded { AggregateRootId = Id, SiteId = SiteId, PageModule = pageModule, ReorderedModules = reorderedModules }); }
private void Apply(PageModulesReordered @event) { foreach (var reorderedPageModule in @event.PageModules) { var pageModule = PageModules.FirstOrDefault(x => x.Id == reorderedPageModule.PageModuleId); pageModule?.Reorder(reorderedPageModule.Zone, reorderedPageModule.SortOrder); } }
public void SetModulePermissions(SetPageModulePermissions cmd) { var pageModule = PageModules.FirstOrDefault(x => x.Id == cmd.PageModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } AddEvent(new PageModulePermissionsSet { SiteId = SiteId, AggregateRootId = Id, PageModuleId = cmd.PageModuleId, PageModulePermissions = cmd.PageModulePermissions }); }
public void ReorderPageModules(ReorderPageModules cmd, IValidator <ReorderPageModules> validator) { validator.ValidateCommand(cmd); var reorderedPageModules = new List <PageModulesReordered.PageModule>(); foreach (var zone in cmd.Zones) { for (int i = 0; i < zone.Modules.Count; i++) { var moduleId = zone.Modules[i]; var zoneName = zone.Name; var sortOrder = i + 1; var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == moduleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } if (pageModule.Zone == zoneName && pageModule.SortOrder == sortOrder) { continue; } pageModule.Reorder(zoneName, sortOrder); reorderedPageModules.Add(new PageModulesReordered.PageModule { ModuleId = pageModule.ModuleId, Zone = zoneName, SortOrder = sortOrder }); } } AddEvent(new PageModulesReordered { SiteId = SiteId, AggregateRootId = Id, PageModules = reorderedPageModules }); }
public void RemoveModule(RemovePageModule cmd, IValidator <RemovePageModule> validator) { validator.ValidateCommand(cmd); var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } AddEvent(new PageModuleRemoved { SiteId = SiteId, AggregateRootId = Id, ModuleId = cmd.ModuleId, PageModuleId = pageModule.Id }); }
public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator) { validator.ValidateCommand(cmd); var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } pageModule.UpdateDetails(cmd); AddEvent(new PageModuleDetailsUpdated { SiteId = SiteId, AggregateRootId = Id, PageModule = pageModule }); }
public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator) { validator.ValidateCommand(cmd); var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } AddEvent(new PageModuleDetailsUpdated { AggregateRootId = Id, SiteId = SiteId, PageId = cmd.PageId, PageModuleId = pageModule.Id, Title = cmd.Title, InheritPermissions = cmd.InheritPermissions, PageModuleLocalisations = cmd.PageModuleLocalisations, PageModulePermissions = cmd.PageModulePermissions }); }
private void Apply(PageModuleRemoved @event) { var pageModule = PageModules.FirstOrDefault(x => x.Id == @event.PageModuleId); pageModule?.Delete(); }
private void Apply(PageModulePermissionsSet @event) { var pageModule = PageModules.FirstOrDefault(x => x.Id == @event.PageModuleId); pageModule?.SetPermissions(@event.PageModulePermissions); }
private void Apply(PageModuleDetailsUpdated @event) { var pageModule = PageModules.FirstOrDefault(x => x.Id == @event.PageModuleId); pageModule?.UpdateDetails(@event); }