コード例 #1
0
        public async Task <IActionResult> VolunteerJobsCreation(VolunteerJobModel job)
        {
            VolunteerRepository repo = new VolunteerRepository(configModel.ConnectionString);
            var user = await userManager.GetUserAsync(User);

            // Verify the user is a staff member
            if (!User.IsInRole(UserHelpers.UserRoles.Staff.ToString()))
            {
                return(Utilities.ErrorJson("Not authorized"));
            }

            // Validate inputs
            if (String.IsNullOrEmpty(job.Name))
            {
                return(Utilities.ErrorJson("Name is required"));
            }
            if (job.Min < 0)
            {
                return(Utilities.ErrorJson("Minimum number of volunteers for ajob must be non-negative"));
            }
            if (job.Max <= 0)
            {
                return(Utilities.ErrorJson("Maximum number of volunteers for a job must be positive"));
            }
            if (job.Max < job.Min)
            {
                return(Utilities.ErrorJson("Maximum number of volunteers for a job cannot be less than the minimum number of volunteers"));
            }

            try
            {
                repo.CreateVolunteerJob(job);
            }
            catch (Exception e)
            {
                return(Utilities.ErrorJson(e.Message));
            }

            return(Utilities.NoErrorJson());
        }