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)); }