private XRpcArray MetaWeblogGetRecentPosts( UrlHelper urlHelper, string blogId, string userName, string password, int numberOfPosts, IEnumerable <IXmlRpcDriver> drivers) { IUser user = ValidateUser(userName, password); // User needs to at least have permission to edit its own blog posts to access the service _authorizationService.CheckAccess(Permissions.EditBlogPost, user, null); BlogPart blog = _contentManager.Get <BlogPart>(Convert.ToInt32(blogId)); if (blog == null) { throw new ArgumentException(); } var array = new XRpcArray(); foreach (var blogPost in _blogPostService.Get(blog, 0, numberOfPosts, VersionOptions.Latest)) { var postStruct = CreateBlogStruct(blogPost, urlHelper); foreach (var driver in drivers) { driver.Process(postStruct); } array.Add(postStruct); } return(array); }
private async Task <XRpcArray> MetaWeblogGetUserBlogsAsync(XmlRpcContext context, string userName, string password) { var user = await ValidateUserAsync(userName, password); XRpcArray array = new XRpcArray(); // Look for all types using ListPart foreach (var type in _contentDefinitionManager.ListTypeDefinitions()) { if (!type.Parts.Any(x => x.Name == nameof(ListPart))) { continue; } foreach (var list in await _session.Query <ContentItem, ContentItemIndex>(x => x.ContentType == type.Name).ListAsync()) { // User needs to at least have permission to edit its own blog posts to access the service if (await _authorizationService.AuthorizeAsync(user, Permissions.EditContent, list)) { var metadata = _contentManager.PopulateAspect <ContentItemMetadata>(list); var displayRouteValues = metadata.DisplayRouteValues; array.Add(new XRpcStruct() .Set("url", context.Url.Action(displayRouteValues["action"].ToString(), displayRouteValues["controller"].ToString(), displayRouteValues, context.HttpContext.Request.Scheme)) .Set("blogid", list.ContentItemId) .Set("blogName", metadata.DisplayText)); } } } return(array); }
/// <summary> /// Maps a rpc array to XML. /// </summary> /// <param name="rpcArray">The rpc array.</param> /// <returns>The XML element.</returns> public XElement MapArray(XRpcArray rpcArray) { return(new XElement( "array", new XElement( "data", rpcArray.Data.Select(MapValue)))); }
/// <summary> /// Maps an XML element to a rpc array. /// </summary> /// <param name="source">The XML element to be mapped.</param> /// <returns>The rpc array.</returns> public XRpcArray MapToArray(XElement source) { var result = new XRpcArray(); foreach (var value in source.Elements("data").Elements("value")) { result.Data.Add(MapValue(value)); } return(result); }
private async Task <XRpcArray> MetaWeblogGetRecentPosts( XmlRpcContext context, string contentItemId, string userName, string password, int numberOfPosts, IEnumerable <IXmlRpcDriver> drivers) { var user = await ValidateUserAsync(userName, password); // User needs to at least have permission to edit its own blog posts to access the service await CheckAccessAsync(Permissions.EditContent, user, null); var list = await _contentManager.GetAsync(contentItemId); if (list == null) { throw new InvalidOperationException("Could not find content item " + contentItemId); } var array = new XRpcArray(); var contentItems = await _session.Query <ContentItem>() .With <ContainedPartIndex>(x => x.ListContentItemId == contentItemId) .With <ContentItemIndex>(x => x.Latest) .OrderByDescending(x => x.CreatedUtc) .Take(numberOfPosts) .ListAsync(); foreach (var contentItem in contentItems) { var postStruct = CreateBlogStruct(context, contentItem); foreach (var driver in drivers) { driver.Process(postStruct); } array.Add(postStruct); } return(array); }
public void ArrayAndStructShouldWorkAsExpected() { var mapper = new XmlRpcWriter(); var arr = new XRpcArray(); var structParam = XRpcData.For(new XRpcStruct()); arr.Data.Add(structParam); arr.Data.Add(XRpcData.For(19)); structParam.Value.Members.Add("Hello", XRpcData.For("world")); var element = mapper.MapArray(arr); Assert.That(NoSpace(element.ToString()), Is.EqualTo(NoSpace(@" <array><data> <value><struct> <member><name>Hello</name><value><string>world</string></value></member> </struct></value> <value><int>19</int></value> </data></array> "))); }
private XRpcArray MetaWeblogGetUserBlogs(UrlHelper urlHelper, string userName, string password) { IUser user = ValidateUser(userName, password); XRpcArray array = new XRpcArray(); foreach (BlogPart blog in _blogService.Get()) { // User needs to at least have permission to edit its own blog posts to access the service if (_authorizationService.TryCheckAccess(Permissions.EditBlogPost, user, blog)) { BlogPart blogPart = blog; array.Add(new XRpcStruct() .Set("url", urlHelper.AbsoluteAction(() => urlHelper.Blog(blogPart))) .Set("blogid", blog.Id) .Set("blogName", blog.Name)); } } return(array); }
private XRpcArray MetaWecAseGetUserCases(UrlHelper urlHelper, string userName, string password) { IUser user = ValidateUser(userName, password); XRpcArray array = new XRpcArray(); foreach (CasePart cAse in _cAseService.Get()) { // User needs to at least have permission to edit its own cAse posts to access the service if (_authorizationService.TryCheckAccess(Permissions.EditCasePost, user, cAse)) { CasePart cAsePart = cAse; array.Add(new XRpcStruct() .Set("url", urlHelper.AbsoluteAction(() => urlHelper.Case(cAsePart))) .Set("cAseid", cAse.Id) .Set("cAseName", _contentManager.GetItemMetadata(cAse).DisplayText)); } } return(array); }
private XRpcArray MetaWeblogGetTags(string appKey, string userName, string password) { var user = _membershipService.ValidateUser(userName, password); _authorizationService.CheckAccess(StandardPermissions.AccessAdminPanel, user, null); var array = new XRpcArray(); foreach (var tag in _tagService.GetTags()) { var thisTag = tag; array.Add(new XRpcStruct() .Set("tag_id", thisTag.TagName) .Set("name", thisTag.TagName)); // nyi - not yet implemented //.Set("count", "") //.Set("slug", "") //.Set("html_url", "") //.Set("rss_url", "")); } return(array); }
private XRpcArray MetaWeblogGetTags(string appKey, string userName, string password) { var user = _membershipService.ValidateUser(userName, password); _authorizationService.CheckAccess(StandardPermissions.AccessAdminPanel, user, null); var array = new XRpcArray(); foreach (var tag in _tagService.GetTags()) { var thisTag = tag; array.Add(new XRpcStruct() .Set("tag_id", thisTag.TagName) .Set("name", thisTag.TagName)); // nyi - not yet implemented //.Set("count", "") //.Set("slug", "") //.Set("html_url", "") //.Set("rss_url", "")); } return array; }
/// <summary> /// Maps an XML element to a rpc array. /// </summary> /// <param name="source">The XML element to be mapped.</param> /// <returns>The rpc array.</returns> public XRpcArray MapToArray(XElement source) { var result = new XRpcArray(); foreach (var value in source.Elements("data").Elements("value")) { result.Data.Add(MapValue(value)); } return result; }
private XRpcArray MetaWeblogGetUserBlogs(UrlHelper urlHelper, string userName, string password) { IUser user = ValidateUser(userName, password); XRpcArray array = new XRpcArray(); foreach (BlogPart blog in _blogService.Get()) { // User needs to at least have permission to edit its own blog posts to access the service if (_authorizationService.TryCheckAccess(Permissions.EditBlogPost, user, blog)) { BlogPart blogPart = blog; array.Add(new XRpcStruct() .Set("url", urlHelper.AbsoluteAction(() => urlHelper.Blog(blogPart))) .Set("blogid", blog.Id) .Set("blogName", blog.Name)); } } return array; }
private XRpcArray MetaWeblogGetRecentPosts( UrlHelper urlHelper, string blogId, string userName, string password, int numberOfPosts) { var user = _membershipService.ValidateUser(userName, password); _authorizationService.CheckAccess(StandardPermissions.AccessFrontEnd, user, null); var blog = _contentManager.Get<Blog>(Convert.ToInt32(blogId)); if (blog == null) throw new ArgumentException(); var array = new XRpcArray(); foreach (var blogPost in _blogPostService.Get(blog).Take(numberOfPosts)) { array.Add(CreateBlogStruct(blogPost, urlHelper)); } return array; }
/// <summary> /// Maps a rpc array to XML. /// </summary> /// <param name="rpcArray">The rpc array.</param> /// <returns>The XML element.</returns> public XElement MapArray(XRpcArray rpcArray) { return new XElement( "array", new XElement( "data", rpcArray.Data.Select(MapValue))); }
private XRpcArray MetaWeblogGetRecentPosts( UrlHelper urlHelper, string blogId, string userName, string password, int numberOfPosts, IEnumerable<IXmlRpcDriver> drivers) { IUser user = ValidateUser(userName, password); // User needs to at least have permission to edit its own blog posts to access the service _authorizationService.CheckAccess(Permissions.EditBlogPost, user, null); BlogPart blog = _contentManager.Get<BlogPart>(Convert.ToInt32(blogId)); if (blog == null) { throw new ArgumentException(); } var array = new XRpcArray(); foreach (var blogPost in _blogPostService.Get(blog, 0, numberOfPosts, VersionOptions.Latest)) { var postStruct = CreateBlogStruct(blogPost, urlHelper); foreach (var driver in drivers) driver.Process(postStruct); array.Add(postStruct); } return array; }
private XRpcArray MetaWeblogGetUserBlogs(UrlHelper urlHelper, string appkey, string userName, string password) { var user = _membershipService.ValidateUser(userName, password); _authorizationService.CheckAccess(StandardPermissions.AccessFrontEnd, user, null); var array = new XRpcArray(); foreach (var blog in _blogService.Get()) { array.Add(new XRpcStruct() .Set("url", urlHelper.AbsoluteAction(() => urlHelper.Blog(blog.Slug))) .Set("blogid", blog.Id) .Set("blogName", blog.Name)); } return array; }