From 00c3b32e2db200a2f42396ac7f8381704ec97268 Mon Sep 17 00:00:00 2001 From: Paweł Bernaciak Date: Fri, 10 Feb 2023 16:19:46 +0100 Subject: Initial Commit --- CoreWiki/Pages/Edit.cshtml.cs | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 CoreWiki/Pages/Edit.cshtml.cs (limited to 'CoreWiki/Pages/Edit.cshtml.cs') diff --git a/CoreWiki/Pages/Edit.cshtml.cs b/CoreWiki/Pages/Edit.cshtml.cs new file mode 100644 index 0000000..06d002f --- /dev/null +++ b/CoreWiki/Pages/Edit.cshtml.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using CoreWiki.Models; + +namespace CoreWiki.Pages +{ + public class EditModel : PageModel + { + private readonly CoreWiki.Models.ApplicationDbContext _context; + + public EditModel(CoreWiki.Models.ApplicationDbContext context) + { + _context = context; + } + + [BindProperty] + public Article Article { get; set; } = default!; + + public async Task OnGetAsync(string id) + { + if (id == null || _context.Articles == null) + { + return NotFound(); + } + + var article = await _context.Articles.FirstOrDefaultAsync(m => m.Topic == id); + if (article == null) + { + return NotFound(); + } + Article = article; + return Page(); + } + + // To protect from overposting attacks, enable the specific properties you want to bind to. + // For more details, see https://aka.ms/RazorPagesCRUD. + public async Task OnPostAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + _context.Attach(Article).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!ArticleExists(Article.Topic)) + { + return NotFound(); + } + else + { + throw; + } + } + + return Redirect($"./{(Article.Topic == "HomePage" ? "" : Article.Topic)}"); + } + + private bool ArticleExists(string id) + { + return (_context.Articles?.Any(e => e.Topic == id)).GetValueOrDefault(); + } + } +} -- cgit v1.2.3