Beispiel #1
0
        public async Task SitemapXml()
        {
            var host = Request.Scheme + "://" + Request.Host;

            Response.ContentType = "application/xml";

            using (var xml = XmlWriter.Create(Response.Body, new XmlWriterSettings {
                Indent = true
            }))
            {
                xml.WriteStartDocument();
                xml.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

                var blogPosts = await _qp.ProcessAsync(new GetBlogPostsQuery());

                foreach (var bp in blogPosts)
                {
                    xml.WriteStartElement("url");
                    xml.WriteElementString("loc", host + bp.GetUrl());
                    xml.WriteElementString("lastmod", bp.ModifiedAt.ToString("yyyy-MM-ddThh:mmzzz"));
                    xml.WriteEndElement();
                }

                xml.WriteEndElement();
            }
        }
Beispiel #2
0
 private Author getAuthor(string username)
 {
     return(_qp.ProcessAsync(new GetAuthorByAppUserIdQuery
     {
         Id = _userManager.Users.FirstOrDefault(u => u.Email == username)?.Id
     })
            .GetAwaiter()
            .GetResult());
 }
Beispiel #3
0
        public async Task <IActionResult> ManagePosts()
        {
            AuthorManagePostsViewModel ampvm = new AuthorManagePostsViewModel();

            var curUser = await _userManager.GetUserAsync(User);

            var gbpbauid = new GetBlogPostsByAppUserIdQuery
            {
                AppUserId = curUser.Id
            };

            var posts = await _qpa.ProcessAsync(gbpbauid);

            ampvm.posts = posts;

            return(View(ampvm));
        }
Beispiel #4
0
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, AuthorIsUserRequirement requirement, Author resource)
        {
            var user = await _userManager.GetUserAsync(context.User);

            var author = await _qpa.ProcessAsync(new GetAuthorByAppUserIdQuery { Id = user.Id });

            if (author != null &&
                author.Id == resource.Id)
            {
                context.Succeed(requirement);
            }
        }
        public async Task <IActionResult> EditProfile()
        {
            var gabauid = new GetAuthorByAppUserIdQuery
            {
                Id = await _userManager.GetUserIdAsync(
                    await _userManager.GetUserAsync(User)
                    )
            };

            var author = await _qpa.ProcessAsync(gabauid);

            var profileViewModel = new ProfileViewModel
            {
                Id        = author.Id,
                FirstName = author.FirstName,
                LastName  = author.LastName,
                Blurb     = author.Blurb,
                Biography = author.Biography
            };

            return(View(profileViewModel));
        }
Beispiel #6
0
        public async Task <IActionResult> Index(int?page)
        {
            var curPage = page ?? 1;

            var gbpfhp = new GetBlogPostsForHomePageQuery
            {
                CurrentPage = curPage,
                PageSize    = _settings.PostsOnHomePage
            };

            var recentPosts = await _qpa.ProcessAsync(gbpfhp);

            var categories = await _qpa.ProcessAsync(new GetCategoriesQuery());

            var vhvm = new HomeViewModel
            {
                Categories  = categories,
                RecentPosts = recentPosts
            };

            return(View(vhvm));
        }
Beispiel #7
0
        public async Task <IActionResult> Index()
        {
            GetRecentBlogPostsQuery grbp = new GetRecentBlogPostsQuery()
            {
                NumberOfPostsToGet = 7
            };

            var recentPosts = await _qpa.ProcessAsync(grbp);

            var vhvm = new HomeViewModel()
            {
                RecentPosts = recentPosts
            };

            return(View(vhvm));
        }
Beispiel #8
0
        public async Task <IActionResult> Index()
        {
            var grbp = new GetRecentBlogPostsQuery()
            {
                NumberOfPostsToGet = 7
            };

            var recentPosts = await _qpa.ProcessAsync(grbp);

            var gtphp = new GetTopicPostsForHomePageViewModelQuery();

            var topicPostsViewModel = await _qpa.ProcessAsync(gtphp);

            var vhvm = new HomeViewModel()
            {
                RecentPosts = recentPosts,
                TopicPosts  = topicPostsViewModel
            };

            return(View(vhvm));
        }
Beispiel #9
0
        public async Task <IActionResult> EditFeature(long id)
        {
            var gfbivm = new GetFeatureByIdQuery()
            {
                Id = id
            };

            var f = await _qpa.ProcessAsync(gfbivm);

            if (f != null)
            {
                return(View(new FeatureViewModel()
                {
                    Id = f.Id, Title = f.Title, Description = f.Description
                }));
            }
            else
            {
                // need better exception and error handling
                return(NotFound());
            }
        }
        public async Task <IActionResult> EditTopic(long id)
        {
            var gfbivm = new GetTopicByIdQuery()
            {
                Id = id
            };

            var f = await _qpa.ProcessAsync(gfbivm);

            if (f != null)
            {
                return(View(new TopicViewModel()
                {
                    Id = f.Id, Title = f.Title, Description = f.Description, ShowOnHomePage = f.ShowOnHomePage
                }));
            }
            else
            {
                _logger.LogWarning("EditTopic called with non-existant Id {0}", id);
                // need better exception and error handling
                return(NotFound());
            }
        }
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context,
                                                             SameAuthorRequirement requirement, BlogPost resource)
        {
            var user = await _userManager.GetUserAsync(context.User);

            var blogPostUserId = await _qpa.ProcessAsync(
                new GetUserIdFromBlogPost
            {
                blogpost = resource
            }
                );

            if (!string.IsNullOrEmpty(blogPostUserId) &&
                blogPostUserId == user.Id)
            {
                context.Succeed(requirement);
            }
        }
Beispiel #12
0
 public async Task <TResult> GetResultAsync <TQuery, TResult>(TQuery query) where TQuery : IQuery
 {
     return(await _queryProcessorAsync.ProcessAsync <TQuery, TResult>(query));
 }
Beispiel #13
0
 public void DispatchThrowsExceptionWhenQueryIsNull()
 {
     _getSomething = null;
     Assert.ThrowsAsync <ArgumentNullException>(async() => await _sut.ProcessAsync <GetSomething, Something>(_getSomething));
 }