예제 #1
0
 public MentorManager(Mentor_MatchineEntities db, MentorRepository mr, MentorPreferencesRepository mpr, MentorLanguagesRepository mlr)
 {
     _db = db;
     mentorRepository            = mr;
     mentorPreferencesRepository = mpr;
     mentorLanguagesRepository   = mlr;
 }
예제 #2
0
        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"));
        }
예제 #3
0
 public MentorFactory(MentorLanguagesRepository mlr, MentorPreferencesRepository mpr, IMatcher matcher)
 {
     _mlr     = mlr;
     _mpr     = mpr;
     _matcher = matcher;
 }