Exemplo n.º 1
0
        public async Task <IActionResult> ReorderPageModules([FromBody] ReorderPageModules model)
        {
            model.SiteId = SiteId;
            await Task.Run(() => _commandSender.Send <ReorderPageModules, Page>(model));

            return(new NoContentResult());
        }
Exemplo n.º 2
0
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new ReorderPageModules
            {
                SiteId = Guid.Empty
            };

            var siteRulesMock = new Mock <ISiteRules>();
            var validator     = new ReorderPageModulesValidator(siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
Exemplo n.º 3
0
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new ReorderPageModules
            {
                SiteId = Guid.NewGuid()
            };

            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);

            var validator = new ReorderPageModulesValidator(siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
Exemplo n.º 4
0
        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
            });
        }
Exemplo n.º 5
0
 public IActionResult ReorderPageModules([FromBody] ReorderPageModules model)
 {
     model.SiteId = SiteId;
     _commandSender.Send<ReorderPageModules, Page>(model);
     return new NoContentResult();
 }
Exemplo n.º 6
0
        public void Setup()
        {
            var createPageCommand = new CreatePage
            {
                SiteId = Guid.NewGuid(),
                Id     = Guid.NewGuid(),
                Name   = "Name",
                Url    = "url"
            };

            var createPageValidatorMock = new Mock <IValidator <CreatePage> >();

            createPageValidatorMock.Setup(x => x.Validate(createPageCommand)).Returns(new ValidationResult());

            _page = Page.CreateNew(createPageCommand, createPageValidatorMock.Object);

            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Header", 1));
            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Header", 2));
            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Content", 1));
            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Content", 2));
            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Footer", 1));
            _page.AddModule(new PageModule(_page.Id, Guid.NewGuid(), Guid.NewGuid(), "Title", "Footer", 2));

            _command = new ReorderPageModules
            {
                SiteId = _page.SiteId,
                PageId = _page.Id,
                Zones  = new List <ReorderPageModules.Zone>
                {
                    new ReorderPageModules.Zone
                    {
                        Name    = "Header",
                        Modules = new List <Guid>
                        {
                            _page.PageModules.FirstOrDefault().ModuleId
                        }
                    },
                    new ReorderPageModules.Zone
                    {
                        Name    = "Content",
                        Modules = new List <Guid>
                        {
                            _page.PageModules.Skip(2).FirstOrDefault().ModuleId,
                            _page.PageModules.Skip(3).FirstOrDefault().ModuleId,
                            _page.PageModules.Skip(1).FirstOrDefault().ModuleId
                        }
                    },
                    new ReorderPageModules.Zone
                    {
                        Name    = "Footer",
                        Modules = new List <Guid>
                        {
                            _page.PageModules.Skip(4).FirstOrDefault().ModuleId,
                            _page.PageModules.Skip(5).FirstOrDefault().ModuleId
                        }
                    }
                }
            };

            var validatorMock = new Mock <IValidator <ReorderPageModules> >();

            validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());

            _page.ReorderPageModules(_command, validatorMock.Object);

            _event = _page.Events.OfType <PageModulesReordered>().SingleOrDefault();
        }
Exemplo n.º 7
0
 public IActionResult ReorderPageModules([FromBody] ReorderPageModules model)
 {
     model.SiteId = SiteId;
     _dispatcher.SendAndPublish <ReorderPageModules, Page>(model);
     return(new NoContentResult());
 }