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());
        }
Exemplo n.º 4
0
        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));
 }