예제 #1
0
        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());
        }