private NonTechVolunteer CreateVolunteer(NonTechVolunteerViewModel model, IEnumerable <int> selectedExpertiseLevels) { var volunteer = model.MapToNonTechVolunteerModel(); volunteer.IsOnWaitList = _waitListHelper.SetWaitListStatus(); foreach (var expertiseId in selectedExpertiseLevels) { volunteer.AreasOfExpertise.Add(_expertiseRepository.Get(expertiseId)); } return(volunteer); }
private bool SaveVolunteer(NonTechVolunteerViewModel model, IEnumerable <int> selectedExpertiseLevels) { if (ModelState.IsValid) { var volunteer = CreateVolunteer(model, selectedExpertiseLevels); _volunteerRepository.Save(volunteer); _notificationService.SendNotification(model.Email, volunteer.IsOnWaitList ? VolunteerNotificationTemplate.WelcomeWaitingVolunteer : VolunteerNotificationTemplate.WelcomeVolunteer); return(true); } return(false); }
public ActionResult SignUp(NonTechVolunteerViewModel model, FormCollection collection) { var selectedExpertiseIds = GetSelectedValues(collection, "areaseOfExpertise", true, "Please select at least one area of expertise."); if (!ModelState.IsValid) { InitializeViewBag(model); return(View()); } if (SaveVolunteer(model, selectedExpertiseIds)) { return(RedirectToAction("ThankYou")); } ModelState.AddModelError("SignUpStatus", "Could not sign you up - please try again"); InitializeViewBag(model); return(View()); }
public static NonTechVolunteer MapToNonTechVolunteerModel(this NonTechVolunteerViewModel model) { var volunteer = new NonTechVolunteer { FirstName = model.FirstName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, Email = model.Email, JobDescription = model.JobDescription, DietaryNeeds = model.DietaryNeeds, TwitterHandle = model.TwitterHandle, Bio = model.Bio, ShirtSize = model.ShirtSize, ShirtStyle = model.ShirtStyle, SkillSet = model.SkillsOutline, SessionDetails = model.ExpertiseTopic }; return(volunteer); }
private void InitializeViewBag(NonTechVolunteerViewModel model) { ViewBag.Expertise = _expertiseRepository.FindAll().ToSelectList(j => j.Description, j => j.Id.ToString(), j => model != null && model.NonTechJobRoleIds != null && model.NonTechJobRoleIds.Contains(j.Id)); }