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