using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using EveryThing.Data; using EveryThing.Models; using EveryThing.Models.Project; using Microsoft.AspNetCore.Authorization; namespace EveryThing.Pages.Projects { [Authorize(Roles = "Administrator,ProjecThingUser")] public class EditPartModel : PageModel { private readonly ApplicationDbContext _context; private readonly UserManager _userManager; private readonly SignInManager _loginManager; private readonly RoleManager _roleManager; public EditPartModel(ApplicationDbContext context, UserManager userManager, SignInManager loginManager, RoleManager roleManager) { _context = context; _userManager = userManager; _loginManager = loginManager; _roleManager = roleManager; } [BindProperty] public ProjectPart ProjectPart { get; set; } public async Task OnGetAsync(int? id) { if (id == null) { return NotFound(); } var user = _userManager.GetUserAsync(User).Result; ProjectPart = await _context.ProjectParts.FirstOrDefaultAsync(m => m.IdProjectPart == id); if (ProjectPart == null) { return NotFound(); } ViewData["IdProject"] = ProjectPart.IdProjectFk; return Page(); } public async Task OnPostAsync() { if (!ModelState.IsValid) { return Page(); } _context.Attach(ProjectPart).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProjectExists(ProjectPart.IdProjectPart)) { return NotFound(); } else { throw; } } return RedirectToPage("./Edit",new { id = ProjectPart.IdProjectFk }); } private bool ProjectExists(int id) { return _context.ProjectParts.Any(e => e.IdProjectPart == id); } } }