public ActionResult Mentor(MentorFormModel mentor) { if (ModelState.IsValid) { using (var db = new Mentor_MatchineEntities()) { var mlr = new MenteeLanguagesRepository(db); var mentorlr = new MentorLanguagesRepository(db); var mpr = new MentorPreferencesRepository(db); var matchesR = new MatchesRepository(db); var mr = new MenteeRepository(db); var mentorR = new MentorRepository(db); var manager = new Director(); var builder = new SimpleMatcherBuilder(); manager.Construct(builder, mlr, mr, matchesR); var matcher = builder.GetResult(); var MentorFactory = new MentorFactory(mentorlr, mpr, matcher); var email = new EmailSender(); MentorManager mentorManager = new MentorManager(db, mentorR, mpr, mentorlr); int id = mentorManager.AddMentorFromForm(mentor); var mentorUser = MentorFactory.GetUser(mentorR.FindById(id)); mentorUser.Id = id; var matches = mentorUser.Match(); var f = mentorR.FindById(id).C_Mentees; var emails = new List <String>(); foreach (int i in matches) { emails.Add(mr.FindById(i).Email); f = f - 1; } mentorR.FindById(id).C_Mentees = f; foreach (string e in emails) { email.SendEmail(e); } var languages = db.Lang.Select(l => new { LangID = l.LanguageID, Language = l.SpokenLang }).ToList(); var nationalities = db.Nationality.Select(l => new { NatID = l.NationalityID, Nationality = l.Nationality1 }).ToList(); ViewBag.Languages = new MultiSelectList(languages, "LangID", "Language"); ViewBag.Nationalities = new MultiSelectList(nationalities, "NatID", "Nationality"); return(View("Mentor")); } } return(View("~/Views/Home/Index.cshtml")); }
public int AddMentorFromForm(MentorFormModel mentor) { var m = new Mentor(); m.Age = mentor.Age; m.Name = mentor.Name; m.Surname = mentor.Surname; m.StartDate = DateTime.Parse(mentor.StartDate); m.Disability = Convert.ToByte(mentor.Disability); m.Gender = mentor.Gender.ToString(); m.Email = mentor.Email; m.Phone = mentor.Phone; m.C_Mentees = mentor.Mentees; var AutoID = GetNextMentorID(); mentorRepository.Add(m); foreach (string language in mentor.Languages) { var ml = new MentorLanguage(); ml.MentorID = AutoID; System.Diagnostics.Debug.WriteLine(language.ToString()); ml.LanguageID = Int32.Parse(language); mentorLanguagesRepository.Add(ml); } if (mentor.Nationalities != null) { foreach (string nationality in mentor.Nationalities) { var prefNat = new MentorPreferences(); prefNat.MentorID = AutoID; prefNat.NationalityID = Int32.Parse(nationality); mentorPreferencesRepository.Add(prefNat); } } return(AutoID); }