// 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, })); } }