public async Task <IActionResult> ClassCreation(ClassModel newClass) { var user = await userManager.GetUserAsync(User); ClassRepository repo = new ClassRepository(configModel.ConnectionString); VolunteerRepository vRepo = new VolunteerRepository(configModel.ConnectionString); // Ensure that ONLY staff accounts have access to this API endpoint if (user == null || !await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())) { return(Utilities.ErrorJson("Not authorized")); } // Validate that a name was provided if (String.IsNullOrEmpty(newClass.Name)) { return(Utilities.ErrorJson("Name is required")); } // Validate that a valid teacher ID was provided if (newClass.TeacherId == 0 || vRepo.GetVolunteer(newClass.TeacherId) == null) { return(Utilities.ErrorJson("Must include a valid teacher Id")); } // Send to the database try { repo.CreateClass(newClass.Name, newClass.Location == null ? "" : newClass.Location, newClass.TeacherId); } catch (Exception e) { return(Utilities.ErrorJson(e.Message)); } return(Utilities.NoErrorJson()); }