예제 #1
0
        public async Task PageServiceAddWithParentTest()
        {
            //arrange

            var userManager = AppObjectFactory.GetContainer().GetInstance <IAppUserManager>();
            var identity    = new ClaimsIdentity();

            identity.AddClaim(new Claim(CustomClaimTypes.Premission, PagePremision.CanManage));
            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, (await userManager.FindByNameAsync("mohammadali")).Id.ToString()));
            var principal = new ClaimsPrincipal(identity);

            var pageAddRequest = new PageAddRequest()
            {
                RequestOwner = principal,
                ViewModel    = new PageAddUpdateViewModel()
                {
                    Handle       = "contactus",
                    UrlSegment   = "/contactus",
                    Title        = "تماس با ما",
                    LanguageName = "fa-IR",
                    Description  = "test",
                    HtmlContent  = "<h1>hello</h1>",
                    ParentId     = Guid.Parse("5040e22d-739f-404a-9762-9da3f4ca7e22")
                }
            };

            AutomapperConfiguration.Cofigure(AppObjectFactory.GetContainer());
            var service = AppObjectFactory.GetContainer().GetInstance <IPageService>();
            var res     = service.Add(pageAddRequest);

            Assert.AreEqual((await res).Access, ResponseAccess.Granted);
        }
예제 #2
0
        public async Task <PageResponse> Add(PageAddRequest request)
        {
            if (!HasPremission(request.RequestOwner, PagePremision.CanManage))
            {
                return(UnauthorizedRequest("UnAuthorized to add page"));
            }

            var model = request.ViewModel.MapToModel();

            //model.UrlSegment = string.IsNullOrEmpty(model.Url)
            //    ? _urlBuilder.GenrateUrlSegment(model.Title)
            //    : _urlBuilder.GenrateUrlSegment(model.UrlSegment);

            await BaseBeforeAddAsync(model, request.RequestOwner);

            await _dataSrv.AddAsync(model);

            await BaseAfterAddAsync(model, request.RequestOwner);

            return(Success());
        }