Пример #1
0
        public string Ping(string sourceUri, string targetUri)
        {
            if (sourceUri == null || targetUri == null)
            {
                throw new ArgumentNullException();
            }

            Oxite.Models.PostAddress postAddress = pathHelper.GetPostAddressFromUri(new Uri(targetUri));

            Oxite.Models.Post post = postService.GetPost(postAddress);

            if (post == null)
            {
                throw new ArgumentException();
            }

            Oxite.Models.Trackback trackback = post.Trackbacks.Where(tb => string.Equals(tb.Url, sourceUri, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();

            if (trackback == null)
            {
                trackback = new Oxite.Models.Trackback()
                {
                    Url      = sourceUri,
                    Created  = DateTime.Now.ToUniversalTime(),
                    Title    = string.Empty,
                    BlogName = string.Empty,
                    Body     = string.Empty,
                    Source   = string.Empty
                };
                postService.AddTrackback(post, trackback);
            }

            return("Success");
        }
        public void GetPostReturnsNullOnNonPostUrl()
        {
            Site site = new Site()
            {
                Host = new Uri("http://test.com/foo")
            };
            RouteCollection routes = new RouteCollection();

            routes.Add("Post", new Route("{slug}/{areaName}", null));

            AbsolutePathHelper helper = new AbsolutePathHelper(site, routes);

            PostAddress postAddress = helper.GetPostAddressFromUri(new Uri("http://test.com/foo/postSlug"));

            Assert.Null(postAddress);
        }
        public void GetPostReturnsPostWithSlugAndAreaWithName()
        {
            Site site = new Site()
            {
                Host = new Uri("http://test.com")
            };
            RouteCollection routes = new RouteCollection();

            routes.Add("Post", new Route("{slug}/{areaName}", null));

            AbsolutePathHelper helper = new AbsolutePathHelper(site, routes);

            PostAddress postAddress = helper.GetPostAddressFromUri(new Uri("http://test.com/postSlug/area"));

            Assert.NotNull(postAddress);
            Assert.Equal("postSlug", postAddress.Slug);
            Assert.Equal("area", postAddress.AreaName);
        }
        public void GetPostFromUriFaultsOnNullUri()
        {
            AbsolutePathHelper helper = new AbsolutePathHelper(null, null);

            Assert.Throws <ArgumentNullException>(() => helper.GetPostAddressFromUri(null));
        }