Esempio n. 1
0
 public HomeController(
     IPropertiesService propertiesService,
     IBlogsService blogsService)
 {
     this.propertiesService = propertiesService;
     this.blogsService      = blogsService;
 }
        public HttpResponseMessage DeleteBlog(string id, HttpRequestMessage request)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.NoContent);

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();
                var           blog         = blogsService.Get(String.Format("blogs/{0}", id));

                if (blog != null)
                {
                    blogsService.Delete(String.Format("blogs/{0}", id));
                }
                else
                {
                    response.StatusCode = HttpStatusCode.NotFound;
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
        public HttpResponseMessage UpdateBlog(string id, HttpRequestMessage request)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.NoContent);

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();
                var           blog         = blogsService.Get(String.Format("blogs/{0}", id));

                if (blog != null)
                {
                    XmlReader       reader = XmlReader.Create(request.Content.ReadAsStreamAsync().Result);
                    SyndicationFeed feed   = SyndicationFeed.Load(reader);

                    if (feed != null)
                    {
                        SyndicationItem item = feed.Items.FirstOrDefault();

                        if (item != null)
                        {
                            blog.name        = item.Title.Text;
                            blog.description = item.Summary.Text;
                            blog.updated     = item.LastUpdatedTime;
                            blog.published   = item.PublishDate;

                            var author = item.Authors.FirstOrDefault();

                            if (author != null)
                            {
                                blog.author = author.Name;
                                blogsService.Update(blog);
                            }
                            else
                            {
                                response.StatusCode = HttpStatusCode.BadRequest;
                            }
                        }
                        else
                        {
                            response.StatusCode = HttpStatusCode.BadRequest;
                        }
                    }
                    else
                    {
                        response.StatusCode = HttpStatusCode.BadRequest;
                    }
                }
                else
                {
                    response.StatusCode = HttpStatusCode.NotFound;
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
        public HttpResponseMessage CreateBlog(HttpRequestMessage request)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();

                XmlReader       reader = XmlReader.Create(request.Content.ReadAsStreamAsync().Result);
                SyndicationFeed feed   = SyndicationFeed.Load(reader);

                if (feed != null)
                {
                    SyndicationItem item = feed.Items.FirstOrDefault();

                    if (item != null)
                    {
                        Blog newBlog = new Blog
                        {
                            name        = item.Title.Text,
                            description = item.Summary.Text,
                            updated     = item.LastUpdatedTime,
                            published   = item.PublishDate
                        };

                        var author = item.Authors.FirstOrDefault();

                        if (author != null)
                        {
                            newBlog.author = author.Name;
                            blogsService.Create(newBlog);

                            response.StatusCode = HttpStatusCode.Created;
                            response.Headers.Add("Location", String.Format("{0}/{1}", this.serviceURI, newBlog.Id));
                        }
                        else
                        {
                            response.StatusCode = HttpStatusCode.BadRequest;
                        }
                    }
                    else
                    {
                        response.StatusCode = HttpStatusCode.BadRequest;
                    }
                }
                else
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
Esempio n. 5
0
 public BlogController(
     UserManager <ApplicationUser> userManager,
     IBlogsService blogsService,
     IWebHostEnvironment environment,
     ICommentService commentService)
 {
     this.userManager    = userManager;
     this.blogsService   = blogsService;
     this.environment    = environment;
     this.commentService = commentService;
 }
Esempio n. 6
0
 public BlogsController(
     UserManager <ApplicationUser> userManager,
     IBlogsService blogServie,
     IWebHostEnvironment environment,
     IStringValidatorService stringValidator)
 {
     this.blogServie      = blogServie;
     this.userManager     = userManager;
     this.environment     = environment;
     this.stringValidator = stringValidator;
 }
Esempio n. 7
0
        public BlogsUnitTests(TestsInitialize fixture)
        {
            this.fixture = fixture;

            IQueryable <Blog> _fakeBlogs = new List <Blog>()
            {
                new Blog()
                {
                    BlogId = 1, Name = "Blog 1", Url = "Url 1", Rating = 1
                },
                new Blog()
                {
                    BlogId = 2, Name = "Blog 2", Url = "Url 2", Rating = 2
                },
                new Blog()
                {
                    BlogId = 3, Name = "Blog 3", Url = "Url 3", Rating = 3
                }
            }.AsQueryable();

            Mock <DbSet <Blog> > _mockSet = new Mock <DbSet <Blog> >();

            _mockSet.As <IAsyncEnumerable <Blog> >().Setup(m => m.GetEnumerator()).Returns(new TestAsyncEnumerator <Blog>(_fakeBlogs.GetEnumerator()));

            _mockSet.As <IQueryable <Blog> >().Setup(m => m.Provider).Returns(new TestAsyncQueryProvider <Blog>(_fakeBlogs.Provider));
            _mockSet.As <IQueryable <Blog> >().Setup(m => m.Expression).Returns(_fakeBlogs.Expression);
            _mockSet.As <IQueryable <Blog> >().Setup(m => m.ElementType).Returns(_fakeBlogs.ElementType);
            _mockSet.As <IQueryable <Blog> >().Setup(m => m.GetEnumerator()).Returns(_fakeBlogs.GetEnumerator());

            Mock <BloggingContext> _mockContext = new Mock <BloggingContext>();

            _mockContext.Setup(c => c.CreateSet <Blog>()).Returns(_mockSet.Object);
            _mockContext.Setup(c => c.Blogs).Returns(_mockSet.Object);

            Mock <ILogger <Repository <Blog> > > _mockLogger = new Mock <ILogger <Repository <Blog> > >();

            IBlogRepository _blogRepository = new BlogRepository(_mockContext.Object, _mockLogger.Object);

            _blogsService = new BlogsService(_blogRepository, null);
        }
 public BlogsApiController(IBlogsService blogsService)
 {
     this.blogsService = blogsService;
 }
Esempio n. 9
0
 public BlogsController(
     IBlogsService blogsService
     ) : base(blogsService)
 {
     _blogsService = blogsService;
 }
Esempio n. 10
0
 public BlogsController(IBlogsService blogsService, IBlogDataService blogDataService)
 {
     _blogsService    = blogsService;
     _blogDataService = blogDataService;
 }
Esempio n. 11
0
 public BlogController(ICategoriesService categoriesService, IBlogsService blogsService)
 {
     this.categoriesService = categoriesService;
     this.blogsService      = blogsService;
 }
 public HomeController(IPostsService postsService, IBlogsService blogsService, ICategoriesService categoriesService)
 {
     this.postsService      = postsService;
     this.blogsService      = blogsService;
     this.categoriesService = categoriesService;
 }
Esempio n. 13
0
 public PostsController(IBlogsService blogsService)
 {
     _blogsService = blogsService;
 }
        public HttpResponseMessage GetBlogTagCloud(string id, HttpRequestMessage request)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();
                var           blog         = blogsService.Get(String.Format("blogs/{0}", id));
                var           tagCloud     = blogsService.GetTagCloud(String.Format("blogs/{0}", id));

                if (blog != null)
                {
                    SyndicationFeed blogFeed = new SyndicationFeed
                    {
                        Title           = new TextSyndicationContent("Blog tag cloud"),
                        LastUpdatedTime = new DateTimeOffset(DateTime.Now)
                    };

                    blogFeed.Links.Add(SyndicationLink.CreateSelfLink(request.RequestUri));

                    SyndicationItem        item     = new SyndicationItem();
                    List <SyndicationItem> itemList = new List <SyndicationItem> {
                        item
                    };
                    blogFeed.Items = itemList;

                    item.Id = blog.Id;
                    item.LastUpdatedTime = blog.updated;
                    item.PublishDate     = blog.published;
                    item.Title           = new TextSyndicationContent("Blog tag cloud");
                    item.Content         = SyndicationContent.CreatePlaintextContent(BuildtagCloud(tagCloud));
                    item.Links.Add(SyndicationLink.CreateSelfLink(request.RequestUri));

                    SyndicationFeedFormatter formatter = null;

                    if (this.ClientAcceptsMediaType("application/atom+xml", request))
                    {
                        formatter = blogFeed.GetAtom10Formatter();
                    }
                    else
                    {
                        if (this.ClientAcceptsMediaType("application/rss+xml", request))
                        {
                            formatter = blogFeed.GetRss20Formatter();
                        }
                    }

                    response.Content = new ObjectContent(typeof(SyndicationFeedFormatter), formatter);
                }
                else
                {
                    response.StatusCode = HttpStatusCode.NotFound;
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
        public HttpResponseMessage GetBlog(string id, HttpRequestMessage request)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();
                var           blog         = blogsService.Get(String.Format("blogs/{0}", id));

                var etag = request.Headers.IfNoneMatch.FirstOrDefault();

                if (etag != null && etag.Tag == blog.etag)
                {
                    response.StatusCode = HttpStatusCode.NotModified;
                }
                else
                {
                    if (blog != null)
                    {
                        if (this.ClientAcceptsMediaType("text/html", request))
                        {
                            response.Content = new ObjectContent <string>(blog.ToHtml(), "text/html");
                        }
                        else
                        {
                            SyndicationFeed blogFeed = new SyndicationFeed
                            {
                                Title           = new TextSyndicationContent("Single Blog"),
                                LastUpdatedTime = new DateTimeOffset(DateTime.Now)
                            };

                            blogFeed.Links.Add(SyndicationLink.CreateSelfLink(request.RequestUri));

                            SyndicationItem        item     = new SyndicationItem();
                            List <SyndicationItem> itemList = new List <SyndicationItem> {
                                item
                            };
                            blogFeed.Items = itemList;

                            item.Id = blog.Id;
                            item.LastUpdatedTime = blog.updated;
                            item.PublishDate     = blog.published;
                            item.Title           = new TextSyndicationContent(blog.name);
                            item.Summary         = new TextSyndicationContent(blog.description);

                            item.Links.Add(SyndicationLink.CreateSelfLink(request.RequestUri));
                            item.Links.Add(SyndicationLink.CreateAlternateLink(request.RequestUri, "text/html"));

                            item.Links.Add(new SyndicationLink(new Uri(String.Format("{0}/{1}", this.serviceURI, blog.Id)), "edit", "Edit blog", "application/atom+xml;type=feed", 0));
                            item.Links.Add(new SyndicationLink(new Uri(String.Format("{0}/{1}/posts", this.serviceURI, blog.Id)), "posts", "Blog posts", "application/atom+xml;type=feed", 0));

                            item.Authors.Add(new SyndicationPerson(string.Empty, blog.author, string.Empty));

                            SyndicationFeedFormatter formatter = null;

                            if (this.ClientAcceptsMediaType("application/atom+xml", request))
                            {
                                formatter = blogFeed.GetAtom10Formatter();
                            }
                            else
                            {
                                if (this.ClientAcceptsMediaType("application/rss+xml", request))
                                {
                                    formatter = blogFeed.GetRss20Formatter();
                                }
                            }

                            response.Content = new ObjectContent(typeof(SyndicationFeedFormatter), formatter);
                        }
                    }
                    else
                    {
                        response.StatusCode = HttpStatusCode.NotFound;
                    }
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
Esempio n. 16
0
 public LinksController(IBlogsService blogsService)
 {
     _blogsService = blogsService;
 }
Esempio n. 17
0
 public CategoriesController(IBlogsService blogsService)
 {
     _blogsService = blogsService;
 }
Esempio n. 18
0
 public BlogsController(IAdminBlogsService service, IBlogsService blogService)
 {
     this.service     = service;
     this.blogService = blogService;
 }
Esempio n. 19
0
 public BlogController(IBlogsService blogsService, ICommentsService commentsService)
 {
     this.blogsService    = blogsService;
     this.commentsService = commentsService;
 }
Esempio n. 20
0
 public TagsController(IBlogsService blogsService)
 {
     _blogsService = blogsService;
 }
        public HttpResponseMessage GetBlogs(HttpRequestMessage request, int pageIndex = 1, int pageSize = 10)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            try
            {
                IBlogsService blogsService = ObjectFactory.GetInstance <IBlogsService>();
                List <Blog>   blogs        = blogsService.GetAll(pageIndex, pageSize);

                if (blogs != null)
                {
                    if (this.ClientAcceptsMediaType("text/html", request))
                    {
                        var blogsHtml = blogs.GenerateBlogsHtml();
                        response.Content = new ObjectContent <string>(blogsHtml, "text/html");
                    }
                    else
                    {
                        SyndicationFeed blogsFeed = new SyndicationFeed
                        {
                            Title           = new TextSyndicationContent("Blogs List"),
                            LastUpdatedTime = new DateTimeOffset(DateTime.Now)
                        };

                        blogsFeed.Links.Add(SyndicationLink.CreateSelfLink(request.RequestUri));

                        List <SyndicationItem> itemList = new List <SyndicationItem>();
                        blogsFeed.Items = itemList;

                        foreach (var blog in blogs)
                        {
                            SyndicationItem item = new SyndicationItem
                            {
                                Id = blog.Id,
                                LastUpdatedTime = blog.updated,
                                PublishDate     = blog.published,
                                Title           = new TextSyndicationContent(blog.name),
                                Summary         = new TextSyndicationContent(blog.description)
                            };

                            item.Links.Add(SyndicationLink.CreateSelfLink(new Uri(String.Format("{0}/{1}", this.serviceURI, blog.Id))));
                            item.Links.Add(SyndicationLink.CreateAlternateLink(request.RequestUri, "text/html"));

                            item.Links.Add(new SyndicationLink(new Uri(String.Format("{0}/{1}", this.serviceURI, blog.Id)), "service.edit", "Edit Blog", "application/atom+xml;type=feed", 0));
                            item.Links.Add(new SyndicationLink(new Uri(String.Format("{0}/{1}/posts", this.serviceURI, blog.Id)), "service.posts", "Blog posts", "application/atom+xml;type=feed", 0));

                            var pagingLinks = this.BuildPagingLinks(blogsService.Count(), pageIndex, pageSize, request.RequestUri);

                            foreach (var link in pagingLinks)
                            {
                                item.Links.Add(link);
                            }

                            item.Authors.Add(new SyndicationPerson(string.Empty, blog.author, string.Empty));

                            itemList.Add(item);
                        }

                        SyndicationFeedFormatter formatter = null;

                        if (this.ClientAcceptsMediaType("application/atom+xml", request))
                        {
                            formatter = blogsFeed.GetAtom10Formatter();
                        }
                        else
                        {
                            if (this.ClientAcceptsMediaType("application/rss+xml", request))
                            {
                                formatter = blogsFeed.GetRss20Formatter();
                            }
                        }

                        response.Content = new ObjectContent(typeof(SyndicationFeedFormatter), formatter);
                    }
                }
                else
                {
                    response.StatusCode = HttpStatusCode.NoContent;
                }
            }
            catch (Exception)
            {
                response.StatusCode = HttpStatusCode.InternalServerError;
            }

            return(response);
        }
Esempio n. 22
0
 public CategoriesController(IBlogsService service)
 {
     this.service = service;
 }
Esempio n. 23
0
 public BlogsClientController(IBlogsService blogsService, ILogger <BlogsClientController> logger)
 {
     _blogsService = blogsService;
     _logger       = logger;
 }
Esempio n. 24
0
 public RandomBlogPostComponent(IBlogsService blogService)
 {
     this.blogService = blogService;
 }
Esempio n. 25
0
 public BlogsController(IBlogsService service)
 {
     this.service = service;
 }