// Required input: contact number, parent name, child first name, bus id
        public async Task <IActionResult> CreateChild(PostChildCreationModel model)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null ||
                !(await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.VolunteerCaptain.ToString()) ||
                  await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.BusDriver.ToString()) ||
                  await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }

            List <String> missingParameters = new List <String>();

            if (model.FirstName == null)
            {
                missingParameters.Add("first name");
            }

            if (model.ParentName == null)
            {
                missingParameters.Add("parent name");
            }

            if (model.ContactNumber == null)
            {
                missingParameters.Add("contact number");
            }

            if (model.BusId == 0)
            {
                missingParameters.Add("bus id");
            }

            if (missingParameters.Count != 0)
            {
                return(Utilities.GenerateMissingInputMessage(missingParameters));
            }

            try
            {
                ChildRepository repo = new ChildRepository(configModel.ConnectionString);
                return(new JsonResult(new
                {
                    Message = repo.CreateChild(model)
                }));
            }
            catch (Exception exc)
            {
                return(new JsonResult(new
                {
                    Error = exc.Message,
                }));
            }
        }