Example #1
0
        public ActionResult Create(PageModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    string url = model.ParentID != null?repository.Get(model.ParentID.Value).LabelForURL : "";

                    if (model.ParentID > 0)
                    {
                        url += "/" + model.LabelForURL.Split('/').Last();
                        repository.CreatePage(url, model.LabelForMenu, model.Title, model.MetaDescription,
                                              model.MetaKeywords, model.ParentID, model.Content, model.MenuWeight,
                                              model.IsMenu, DateTime.Now, model.TemplateId);
                    }
                    else
                    {
                        repository.CreatePage(model.LabelForURL, model.LabelForMenu, model.Title, model.MetaDescription,
                                              model.MetaKeywords, model.ParentID, model.Content, model.MenuWeight,
                                              model.IsMenu, model.DateCreation, model.TemplateId);
                    }
                    return(RedirectToAction("Pages"));
                }
                return(View(model));
            }
            catch
            {
                //throw new Exception("Невозможно добавить страницу");
                return(View());
            }
        }
        public void UpdatePageTreeFail()
        {
            //Arrange
            var  pageRepository = new PageRepository(_container);
            var  dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var  pages          = TestDataRepository.GetPages();
            Page parentPage     = pages.First();

            pages.Remove(parentPage);
            pageRepository.CreatePage(parentPage);
            parentPage.ChildPage = new List <Page>();
            foreach (var page in pages)
            {
                page.ParentId = parentPage.Id;
                pageRepository.CreatePage(page);
                parentPage.ChildPage.Add(page);
            }

            //Act
            Page pageToUpdate = null;

            var result = pageRepository.UpdatePageTree(pageToUpdate);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
        public void GetPageSuccess()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pages          = TestDataRepository.GetPages();
            var page           = pages.First();

            pageRepository.CreatePage(page);


            //Act
            var result = pageRepository.GetPage(page.Id);
            var resultPageTranslation = result.PageTranslation.First();

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.NotNull(result.PageTranslation);
            Assert.True(result.PageTranslation.Count > 0);
            Assert.NotNull(result.PagePermissions);
            Assert.True(result.PagePermissions.Count > 0);
            Assert.True(result.CreatedDate > DateTime.MinValue);
            Assert.True(result.LastModifiedDate > DateTime.MinValue);
            Assert.NotNull(resultPageTranslation);
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Name));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Description));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Locale));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Title));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.URL));

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
        public void GetPageTranslationFail()
        {
            //Arrange
            var pageRepository  = new PageRepository(_container);
            var dbContext       = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pages           = TestDataRepository.GetPages();
            var page            = pages.First();
            var pagePermissions = page.PagePermissions;

            pagePermissions.Add(new PagePermission
            {
                Id           = Guid.NewGuid(),
                PermissionId = Guid.NewGuid(),
                RoleId       = Guid.NewGuid(),
            });
            pageRepository.CreatePage(page);
            var pageTranslation = page.PageTranslation.First();

            //Act
            var result = pageRepository.GetPageTranslations(null);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
        public void GetPageTranslationSuccess()
        {
            //Arrange
            var pageRepository  = new PageRepository(_container);
            var dbContext       = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pages           = TestDataRepository.GetPages();
            var page            = pages.First();
            var pagePermissions = page.PagePermissions;

            pagePermissions.Add(new PagePermission
            {
                Id           = Guid.NewGuid(),
                PermissionId = Guid.NewGuid(),
                RoleId       = Guid.NewGuid(),
            });
            pageRepository.CreatePage(page);
            var pageTranslation = page.PageTranslation.First();

            //Act
            var result = pageRepository.GetPageTranslation(pageTranslation.URL);

            //Assert
            Assert.NotNull(result);
            Assert.True(!string.IsNullOrEmpty(result.Name));
            Assert.True(!string.IsNullOrEmpty(result.Description));
            Assert.True(!string.IsNullOrEmpty(result.Locale));
            Assert.True(!string.IsNullOrEmpty(result.Title));
            Assert.True(!string.IsNullOrEmpty(result.URL));

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
        public void UpdatePageTreeSuccess()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var parentPage     = TestDataRepository.GetPages().First();
            var childPages     = TestDataRepository.GetPages();

            parentPage           = pageRepository.CreatePage(parentPage);
            parentPage.ChildPage = new List <Page>();
            foreach (var page in childPages)
            {
                page.ParentId = parentPage.Id;
                var resultChildPage = pageRepository.CreatePage(page);
                parentPage.ChildPage.Add(resultChildPage);
            }

            //Act
            var pageToUpdate = parentPage.ChildPage.First();

            pageToUpdate.PageOrder = 5;
            var pageTranslation = pageToUpdate.PageTranslation.First();

            pageTranslation.Name = "TestUpdate";

            var result                = pageRepository.UpdatePageTree(parentPage);
            var resultPage            = result.ChildPage.First(p => p.Id == pageToUpdate.Id);
            var resultPageTranslation = resultPage.PageTranslation.First();

            //Assert
            Assert.NotNull(resultPage);
            Assert.NotEqual(resultPage.Id, Guid.Empty);
            Assert.True(resultPage.CreatedDate > DateTime.MinValue);
            Assert.True(resultPage.LastModifiedDate > DateTime.MinValue);
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Name));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Description));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Locale));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.Title));
            Assert.True(!string.IsNullOrEmpty(resultPageTranslation.URL));
            Assert.NotNull(result.ChildPage);
            Assert.True(result.ChildPage.Count > 0);
            Assert.True(resultPage.PageOrder == pageToUpdate.PageOrder);
            Assert.True(pageTranslation.Name == resultPageTranslation.Name);

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
Example #7
0
        //[Fact]
        //public void GetModuleEditResultSuccess()
        //{
        //    //Arrange
        //    //var actionContextMock = new Mock<ActionContext>();
        //    var scopeServiceMock = new Mock<IScopeService>();
        //    var pageManager = new PageManager(_container);
        //    var moduleRepository = new ModuleRepository(_container);
        //    var dbContext = _serviceProvider.GetRequiredService<DeviserDbContext>();
        //    var pageId = SetupPageAndModules();
        //    var currentPage = pageManager.GetPageAndDependencies(pageId);
        //    scopeServiceMock.Setup(s => s.PageContext.CurrentPage).Returns(currentPage);


        //    var httpContext = CreateHttpContext("GET");

        //    var router = new Mock<IRouter>(MockBehavior.Strict).Object;
        //    var actionContext = new ActionContext();
        //    actionContext.HttpContext = httpContext;
        //    actionContext.RouteData = new RouteData();
        //    actionContext.RouteData.Routers.Add(router);

        //    //actionContextMock.Setup(ac => ac.RouteData).Returns(new RouteData());
        //    //actionContextMock.Setup(ac => ac.RouteData.Routers).Returns(new List<IRouter>());
        //    var deviserControllerFactory = new DeviserControllerFactory(_container, scopeServiceMock.Object);
        //    var modules = moduleRepository.Get();
        //    var editModule = modules.First(m => m.ModuleAction.Any(ma => ma.ControllerName == "Edit"));
        //    var editModuleAction =
        //        editModule.ModuleAction.First(
        //            ma => ma.ModuleActionTypeId == Guid.Parse("192278B6-7BF2-40C2-A776-B9CA5FB04FBB"));
        //    var pageModule = currentPage.PageModule.First(pm => pm.ModuleId == editModule.Id);

        //    //Act
        //    var result = deviserControllerFactory.GetModuleEditResultAsString(actionContext, pageModule, editModuleAction.Id).Result;

        //    //Assert
        //    Assert.NotNull(result);
        //    Assert.True(!string.IsNullOrEmpty(result));
        //    Assert.True(!result.Contains("Module load exception"));

        //    //Clean
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.Module.RemoveRange(dbContext.Module);
        //    dbContext.Page.RemoveRange(dbContext.Page);
        //}

        //[Fact]
        //public void GetModuleEditResultFail()
        //{
        //    //Arrange
        //    var actionContextMock = new Mock<ActionContext>();
        //    var scopeServiceMock = new Mock<IScopeService>();
        //    var pageManager = new PageManager(_container);
        //    var dbContext = _serviceProvider.GetRequiredService<DeviserDbContext>();
        //    var pageId = SetupPageAndModules();
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.SaveChanges();
        //    var currentPage = pageManager.GetPageAndDependencies(pageId);
        //    scopeServiceMock.Setup(s => s.PageContext.CurrentPage).Returns(currentPage);
        //    actionContextMock.Setup(ac => ac.RouteData.Routers).Returns(new List<IRouter>());
        //    var deviserControllerFactory = new DeviserControllerFactory(_container, scopeServiceMock.Object);

        //    //Act
        //    var result = deviserControllerFactory.GetModuleEditResultAsString(actionContextMock.Object, new PageModule(), Guid.NewGuid()).Result;

        //    //Assert
        //    Assert.NotNull(result);
        //    Assert.True(!string.IsNullOrEmpty(result));
        //    Assert.True(result.Contains("Module load exception"));

        //    //Clean
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.Module.RemoveRange(dbContext.Module);
        //    dbContext.Page.RemoveRange(dbContext.Page);
        //}

        private Guid SetupPageAndModules()
        {
            //Arrange
            var pageRepository   = new PageRepository(_container);
            var moduleRepository = new ModuleRepository(_container);

            var pages = TestDataRepository.GetPages();
            var page  = pages.First();

            //Create a page
            pageRepository.CreatePage(page);

            //Create modules
            var modules = TestDataRepository.GetModules();

            foreach (var module in modules)
            {
                moduleRepository.Create(module);

                if (module != null && module.ModuleAction != null)
                {
                    foreach (var moduleAction in module.ModuleAction)
                    {
                        //Create page modules
                        var pageModule = new PageModule()
                        {
                            Id                     = Guid.NewGuid(),
                            PageId                 = page.Id,
                            ContainerId            = Guid.NewGuid(),
                            InheritViewPermissions = true,
                            InheritEditPermissions = true,
                            ModuleId               = module.Id,
                            ModuleAction           = moduleAction,
                            ModulePermissions      = new List <ModulePermission>()
                            {
                                new ModulePermission
                                {
                                    Id           = Guid.NewGuid(),
                                    PageModuleId = Guid.NewGuid(),
                                    PermissionId = Guid.NewGuid(),
                                    RoleId       = Guid.NewGuid(),
                                }
                            },
                            IsDeleted = false
                        };
                        pageRepository.CreatePageModule(pageModule);
                    }
                }
            }

            return(page.Id);
        }
Example #8
0
 public void CreatePage(PageDto dto)
 {
     try
     {
         _logger.Info("UseCase : {0}", "start create page");
         var page = new Page(dto.NamePage, dto.ContentPage, dto.DateCreatePage, dto.DateChangePage,
                             dto.OwnerPage, dto.ChangerPage, dto.SectionId);
         _logger.Info("UseCase : {0}", "adding to repository");
         _pageRepo.CreatePage(page);
     }
     catch (Exception ex)
     {
         _logger.Error(ex.Message);
     }
 }
        public void CreatePageFail()
        {
            //Arrange
            var  pageRepository = new PageRepository(_container);
            var  dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            Page page           = null;

            //Act
            var result = pageRepository.CreatePage(page);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }
        public void UpdatePagePermissionRemoveSuccess()
        {
            //Arrange
            var pageRepository  = new PageRepository(_container);
            var dbContext       = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pages           = TestDataRepository.GetPages();
            var page            = pages.First();
            var pageToUpdate    = pageRepository.CreatePage(page);
            var pagePermissions = pageToUpdate.PagePermissions;

            pagePermissions.Add(new PagePermission
            {
                Id           = Guid.NewGuid(),
                PermissionId = Guid.NewGuid(),
                RoleId       = Guid.NewGuid(),
                PageId       = pageToUpdate.Id
            });

            var initialCount = pageToUpdate.PagePermissions.Count;

            //Act
            pageToUpdate.PagePermissions.Remove(pageToUpdate.PagePermissions.First());
            pageRepository.UpdatePage(pageToUpdate);
            var result     = pageRepository.GetPage(pageToUpdate.Id);
            var afterCount = result.PagePermissions.Count;

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.NotNull(result.PageTranslation);
            Assert.True(result.PageTranslation.Count > 0);
            Assert.NotNull(result.PagePermissions);
            Assert.True(result.PagePermissions.Count > 0);
            Assert.True(result.CreatedDate > DateTime.MinValue);
            Assert.True(result.LastModifiedDate > DateTime.MinValue);
            Assert.True(afterCount < initialCount);

            //Clean
            dbContext.Page.RemoveRange(dbContext.Page);
        }