コード例 #1
0
        public void Given_NotExistingRedirect_Controller_TriesToUpdateAndThrowsExceptionRedirectNotFound()
        {
            var restController = RedirectRuleController()
                                 .WithRandomExistingRules()
                                 .Create();

            var redirectDto = new RedirectRuleDto(Guid.NewGuid(), "/NonExistentOldPath", "/randomNewUrl",
                                                  RedirectType.Temporary);

            Assert.Throws <KeyNotFoundException>(() => restController.Put(redirectDto));
        }
コード例 #2
0
        public void Given_ExistingRedirects_Controller_CreatesNewRedirect()
        {
            var restController = RedirectRuleController()
                                 .WithRandomExistingRules()
                                 .Create();

            var redirectDto = new RedirectRuleDto("randomOldPath", "randomNewPath");

            var newRedirect      = restController.Post(redirectDto).GetEntityFromActionResult();
            var expectedRedirect = restController.Get(newRedirect.Id.Value).GetEntityFromActionResult();

            Assert.NotNull(expectedRedirect);
        }
コード例 #3
0
        public ActionResult Put(RedirectRuleDto dto)
        {
            if (!ViewData.ModelState.IsValid)
            {
                return(null);
            }

            var updatedRedirectRule = _redirectRuleMapper.DtoToModel(dto);

            updatedRedirectRule = _redirectRuleRepository.Update(updatedRedirectRule);

            var updatedRedirectRuleDto = _redirectRuleMapper.ModelToDto(updatedRedirectRule);

            return(Rest(updatedRedirectRuleDto));
        }
コード例 #4
0
        private static RedirectRule DtoToModelDelegate(RedirectRuleDto source)
        {
            var destination = new RedirectRule();

            destination.Id               = source.Id;
            destination.OldPattern       = UrlPath.ExtractRelativePath(source.OldPattern);
            destination.NewPattern       = UrlPath.ExtractRelativePath(source.NewPattern);
            destination.RedirectType     = source.RedirectType;
            destination.RedirectRuleType = source.RedirectRuleType;
            destination.IsActive         = source.IsActive;
            destination.Notes            = source.Notes;
            destination.ContentId        = source.ContentId;
            destination.Priority         = (source.Priority.HasValue && source.Priority > 0) ? source.Priority.Value : Configuration.Configuration.DefaultRedirectRulePriority;

            return(destination);
        }
コード例 #5
0
        public ActionResult Post(RedirectRuleDto dto)
        {
            if (!ViewData.ModelState.IsValid)
            {
                return(null);
            }

            var newRedirectRule = _redirectRuleMapper.DtoToModel(dto);

            newRedirectRule.FromManual();

            newRedirectRule = _redirectRuleRepository.Add(newRedirectRule);

            var newRedirectRuleDto = _redirectRuleMapper.ModelToDto(newRedirectRule);

            return(Rest(newRedirectRuleDto));
        }
コード例 #6
0
        private static RedirectRuleDto ModelToDtoDelegate(RedirectRule source)
        {
            var destination = new RedirectRuleDto();

            destination.Id               = source.Id.ExternalId;
            destination.OldPattern       = source.OldPattern;
            destination.NewPattern       = source.NewPattern;
            destination.ContentId        = source.ContentId;
            destination.RedirectType     = source.RedirectType;
            destination.RedirectRuleType = source.RedirectRuleType;
            destination.RedirectOrigin   = source.RedirectOrigin;
            destination.IsActive         = source.IsActive;
            destination.Notes            = source.Notes;
            destination.CreatedOn        = DateTime.SpecifyKind(source.CreatedOn, DateTimeKind.Utc);
            destination.CreatedBy        = source.CreatedBy;
            destination.Priority         = source.Priority;

            return(destination);
        }
コード例 #7
0
        public void Given_ExistingRedirects_Controller_ReturnsAllRedirects()
        {
            var rule1         = RandomDataGenerator.CreateRandomRedirectRule();
            var rule2         = RandomDataGenerator.CreateRandomRedirectRule();
            var existingRules = new HashSet <RedirectRule>
            {
                rule1,
                rule2
            };
            var dto1 = new RedirectRuleDto();
            var dto2 = new RedirectRuleDto();

            var restController = RedirectRuleController()
                                 .WithExplicitExistingRules(existingRules)
                                 .WithMapper(r => r == rule1 ? dto1 : r == rule2 ? dto2 : null)
                                 .WithHttpResponseHeaders()
                                 .Create();
            var resolvedRules = restController
                                .Get()
                                .GetEntitiesFromActionResult();

            Assert.Equal(new[] { dto1, dto2 }, resolvedRules);
        }
コード例 #8
0
        public RedirectRule DtoToModel(RedirectRuleDto source)
        {
            var destination = DtoToModelDelegate(source);

            return(destination);
        }