Ejemplo n.º 1
0
        public async Task <IActionResult> EditPost(long id)
        {
            var post = await _qpa.ProcessAsync(new GetBlogPostByIdQuery { Id = id });

            EditBlogPostViewModel ebpvm = new EditBlogPostViewModel
            {
                Id             = id,
                Title          = post.Title,
                Content        = post.Content,
                Description    = post.Description,
                PublishOn      = post.PublishOn,
                Public         = post.Public,
                FeaturesList   = new List <FeaturesCheckBox>(),
                CategoriesList = new List <CategoriesCheckBox>()
            };

            var postHasCategories = await _qpa.ProcessAsync(new GetCategoriesForBlogPostByIdQuery { Id = id });

            foreach (var category in await _qpa.ProcessAsync(new GetCategoriesQuery()))
            {
                var categoryCheckBox = new CategoriesCheckBox()
                {
                    CategoryId = category.Id,
                    Name       = category.Name,
                    IsSelected = false
                };

                if (postHasCategories.Contains(category))
                {
                    categoryCheckBox.IsSelected = true;
                }

                ebpvm.CategoriesList.Add(categoryCheckBox);
            }

            var postHasFeatures = await _qpa.ProcessAsync(new GetFeaturesForBlogPostByIdQuery { Id = id });

            foreach (var feature in await _qpa.ProcessAsync(new GetFeaturesQuery()))
            {
                var featureCheckBox = new FeaturesCheckBox()
                {
                    FeatureId  = feature.Id,
                    Title      = feature.Title,
                    IsSelected = false
                };

                if (postHasFeatures.Contains(feature))
                {
                    featureCheckBox.IsSelected = true;
                }

                ebpvm.FeaturesList.Add(featureCheckBox);
            }

            return(View(ebpvm));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> EditPost(long id)
        {
            var post = await _qpa.ProcessAsync(new GetBlogPostByIdQuery { Id = id });

            if (post != null)
            {
                EditBlogPostViewModel ebpvm = new EditBlogPostViewModel
                {
                    Id             = id,
                    Title          = post.Title,
                    Content        = post.Content,
                    Description    = post.Description,
                    PublishOn      = post.PublishOn,
                    Public         = post.Public,
                    TopicsList     = new List <TopicsCheckBox>(),
                    CategoriesList = new List <CategoriesCheckBox>()
                };

                var postHasCategories = await _qpa.ProcessAsync(new GetCategoriesForBlogPostByIdQuery { Id = id });

                foreach (var category in await _qpa.ProcessAsync(new GetCategoriesQuery()))
                {
                    var categoryCheckBox = new CategoriesCheckBox()
                    {
                        CategoryId = category.Id,
                        Name       = category.Name,
                        IsSelected = false
                    };

                    if (postHasCategories.Contains(category))
                    {
                        categoryCheckBox.IsSelected = true;
                    }

                    ebpvm.CategoriesList.Add(categoryCheckBox);
                }

                var postHasTopics = await _qpa.ProcessAsync(new GetTopicsForBlogPostByIdQuery { Id = id });

                foreach (var topic in await _qpa.ProcessAsync(new GetTopicsQuery()))
                {
                    var topicCheckBox = new TopicsCheckBox()
                    {
                        TopicId    = topic.Id,
                        Title      = topic.Title,
                        IsSelected = false
                    };

                    if (postHasTopics.Contains(topic))
                    {
                        topicCheckBox.IsSelected = true;
                    }

                    ebpvm.TopicsList.Add(topicCheckBox);
                }

                return(View(ebpvm));
            }
            else
            {
                _logger.LogWarning("EditPost called for non-existant BlogPost {0}", id);

                return(NotFound());
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> EditPost(long id)
        {
            var post = await _qpa.ProcessAsync(new GetBlogPostByIdQuery { Id = id });

            if (post != null)
            {
                var authResult = await _authService.AuthorizeAsync(User, post, "EditPolicy");

                if (!authResult.Succeeded &&
                    !User.IsInRole("Admins"))
                {
                    if (User.Identity.IsAuthenticated)
                    {
                        return(new ForbidResult());
                    }
                    else
                    {
                        return(new ChallengeResult());
                    }
                }

                var ebpvm = new EditBlogPostViewModel
                {
                    Id             = id,
                    Title          = post.Title,
                    Content        = post.Content,
                    Description    = post.Description,
                    PublishOn      = post.PublishOn,
                    Public         = post.Public,
                    TopicsList     = new List <TopicsCheckBox>(),
                    CategoriesList = new List <CategoriesCheckBox>()
                };

                var postHasCategories = await _qpa.ProcessAsync(new GetCategoriesForBlogPostByIdQuery { Id = id });

                foreach (var category in await _qpa.ProcessAsync(new GetCategoriesQuery()))
                {
                    var categoryCheckBox = new CategoriesCheckBox()
                    {
                        CategoryId = category.Id,
                        Name       = category.Name,
                        IsSelected = false
                    };

                    if (postHasCategories.Contains(category))
                    {
                        categoryCheckBox.IsSelected = true;
                    }

                    ebpvm.CategoriesList.Add(categoryCheckBox);
                }

                var postHasTopics = await _qpa.ProcessAsync(new GetTopicsForBlogPostByIdQuery { Id = id });

                foreach (var topic in await _qpa.ProcessAsync(new GetTopicsQuery()))
                {
                    var topicCheckBox = new TopicsCheckBox()
                    {
                        TopicId    = topic.Id,
                        Title      = topic.Title,
                        IsSelected = false
                    };

                    if (postHasTopics.Contains(topic))
                    {
                        topicCheckBox.IsSelected = true;
                    }

                    ebpvm.TopicsList.Add(topicCheckBox);
                }

                return(View(ebpvm));
            }
            else
            {
                _logger.LogWarning("EditPost called for non-existant BlogPost {0}", id);

                return(NotFound());
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> EditPost(long id)
        {
            var post = await _context.BlogPosts.FindAsync(id);

            EditBlogPostViewModel ebpvm = new EditBlogPostViewModel
            {
                Id             = id,
                Title          = post.Title,
                Content        = post.Content,
                Description    = post.Description,
                PublishOn      = post.PublishOn,
                Public         = post.Public,
                FeaturesList   = new List <FeaturesCheckBox>(),
                CategoriesList = new List <CategoriesCheckBox>()
            };

            var postHasCategories = await(from bpc in _context.BlogPostCategory
                                          where bpc.BlogPostId == id
                                          join c in _context.Categories on bpc.CategoryId equals c.Id
                                          select c).ToListAsync();

            foreach (var category in _context.Categories)
            {
                var categoryCheckBox = new CategoriesCheckBox()
                {
                    CategoryId = category.Id,
                    Name       = category.Name,
                    IsSelected = false
                };

                if (postHasCategories.Contains(category))
                {
                    categoryCheckBox.IsSelected = true;
                }

                ebpvm.CategoriesList.Add(categoryCheckBox);
            }

            var postHasFeatures = await(from bpf in _context.BlogPostFeature
                                        where bpf.BlogPostId == id
                                        join f in _context.Features on bpf.FeatureId equals f.Id
                                        select f).ToListAsync();

            foreach (var feature in _context.Features)
            {
                var featureCheckBox = new FeaturesCheckBox()
                {
                    FeatureId  = feature.Id,
                    Title      = feature.Title,
                    IsSelected = false
                };

                if (postHasFeatures.Contains(feature))
                {
                    featureCheckBox.IsSelected = true;
                }

                ebpvm.FeaturesList.Add(featureCheckBox);
            }

            return(View(ebpvm));
        }