public void Save(NonTechVolunteer volunteer)
        {
            if (volunteer.Id == 0)
            {
                _dataContext.NonTechVolunteers.Add(volunteer);
                _dataContext.SaveChanges();
            }

            if (volunteer.Id != 0 && volunteer.AreasOfExpertise != null && volunteer.AreasOfExpertise.Count > 0)
            {
                foreach (var volunteerExpertise in _dataContext.NonTechVolunteerExpertise.Where(vjr => vjr.VolunteerId == volunteer.Id))
                {
                    if (!volunteer.AreasOfExpertise.Any(jr => jr.Id == volunteerExpertise.ExpertiseId))
                    {
                        _dataContext.NonTechVolunteerExpertise.Remove(volunteerExpertise);
                    }
                }
                _dataContext.SaveChanges();

                foreach (var expertise in volunteer.AreasOfExpertise.Where(jr => !_dataContext.NonTechVolunteerExpertise.Any(vjr => vjr.ExpertiseId == jr.Id)))
                {
                    _dataContext.NonTechVolunteerExpertise.Add(new NonTechVolunteerExpertise()
                    {
                        VolunteerId = volunteer.Id,
                        ExpertiseId = expertise.Id
                    });
                }
                _dataContext.SaveChanges();
            }

            _dataContext.SaveChanges();
        }
        public void Save(NonTechVolunteer volunteer)
        {
            if (volunteer.Id == 0)
            {
                _dataContext.NonTechVolunteers.Add(volunteer);
                _dataContext.SaveChanges();
            }

            if (volunteer.Id != 0 && volunteer.AreasOfExpertise != null && volunteer.AreasOfExpertise.Count > 0)
            {
                foreach (var volunteerExpertise in _dataContext.NonTechVolunteerExpertise.Where(vjr => vjr.VolunteerId == volunteer.Id))
                {
                    if (!volunteer.AreasOfExpertise.Any(jr => jr.Id == volunteerExpertise.ExpertiseId))
                        _dataContext.NonTechVolunteerExpertise.Remove(volunteerExpertise);
                }
                _dataContext.SaveChanges();

                foreach (var expertise in volunteer.AreasOfExpertise.Where(jr => !_dataContext.NonTechVolunteerExpertise.Any(vjr => vjr.ExpertiseId == jr.Id)))
                {
                    _dataContext.NonTechVolunteerExpertise.Add(new NonTechVolunteerExpertise()
                    {
                        VolunteerId = volunteer.Id,
                        ExpertiseId = expertise.Id
                    });
                }
                _dataContext.SaveChanges();
            }

            _dataContext.SaveChanges();
        }
Beispiel #3
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);
        }