Esempio n. 1
0
        public ActionResult Edit(EditProfileViewModel model)
        {
            if (ModelState.IsValid)
            {
                //save logic
                var teacher = Db.Teachers.FirstOrDefault(x => x.Id == model.Teacher.Id);
                teacher.About       = model.Teacher.About;
                teacher.Age         = model.Teacher.Age;
                teacher.Category    = model.Teacher.Category;
                teacher.City        = model.Teacher.City;
                teacher.Education   = model.Teacher.Education;
                teacher.HomeNum     = model.Teacher.HomeNum;
                teacher.Institution = model.Teacher.Institution;
                teacher.isActive    = model.Teacher.isActive;
                teacher.LessonPrice = model.Teacher.LessonPrice;
                teacher.LessonTime  = model.Teacher.LessonTime;
                teacher.Phone       = model.Teacher.Phone;
                teacher.PictureUrl  = model.Teacher.PictureUrl;
                teacher.Street      = model.Teacher.Street;

                // remove old subjects to teach
                // bad logic !!!
                Db.SubjectsToTeach.RemoveRange(teacher.SubjectsToTeach);
                // add new subjects to teach
                foreach (var idx in model.SubjectsId)
                {
                    int            i    = int.Parse(idx);
                    var            subj = Db.Subjects.FirstOrDefault(x => x.Id == i);
                    SubjectToTeach stt  = new SubjectToTeach();
                    stt.SubjectId = subj.Id;
                    stt.Name      = subj.Name;
                    teacher.SubjectsToTeach.Add(stt);
                }
                // update geolocation
                teacher.UpdateGeoLocation(new GeoLocation(model.Teacher.GetAddressForMap()));

                Db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            // model not valid get data again and return to page
            model.Subjects     = GetSubjectsSelectedList();
            model.Cities       = GetCitiesSelectedList();
            model.Time         = GetLessonTimeSelectedList();
            model.Institutions = GetInstitutionsGroupDropList();

            return(View(model));
        }
Esempio n. 2
0
        public ActionResult Create(CreateProfileViewModel model)
        {
            if (ModelState.IsValid)
            {
                Teacher t = new Teacher();
                t.Age         = model.Age.Value;
                t.City        = model.City;
                t.Street      = model.Street;
                t.HomeNum     = model.HomeNum.Value;
                t.LessonPrice = model.LessonPrice.Value;
                t.LessonTime  = int.Parse(model.LessonTime);
                t.Education   = model.Education;
                t.Institution = model.Institution;
                t.About       = model.About;
                t.Phone       = model.Phone;
                t.PictureUrl  = model.PictureUrl;
                t.isActive    = model.isActive;
                // take care of subjects
                foreach (var idx in model.SubjectsId)
                {
                    int            i    = int.Parse(idx);
                    var            subj = Db.Subjects.FirstOrDefault(x => x.Id == i);
                    SubjectToTeach stt  = new SubjectToTeach();
                    stt.SubjectId = int.Parse(idx);
                    stt.Name      = subj.Name;
                    t.SubjectsToTeach.Add(stt);
                }

                // get user geolocation by address
                t.GeoLocation = new GeoLocation(t.GetAddressForMap());
                // set relation to user
                if (User.Identity.IsAuthenticated)
                {
                    t.ApplicationUserId = User.Identity.GetUserId();
                }

                // add teacher to collection
                Db.Teachers.Add(t);
                // save changes to db
                Db.SaveChanges();

                return(RedirectToAction("Index", "Profile"));
            }
            else
            {
                // ovverride not number message
                if (ModelState["HomeNum"].Errors.Count > 0 &&
                    ModelState["HomeNum"].Errors.FirstOrDefault().ErrorMessage.Contains("is not valid"))
                {
                    ModelState["HomeNum"].Errors.Clear();
                    ModelState.AddModelError("HomeNum", "* רק מספרים");
                }
            }
            // model not valid get data again and return to page
            model.Subjects     = GetSubjectsSelectedList();
            model.Cities       = GetCitiesSelectedList();
            model.Time         = GetLessonTimeSelectedList();
            model.Institutions = GetInstitutionsGroupDropList();

            var id = User.Identity.GetUserId();

            model.User = Db.Users.FirstOrDefault(x => x.Id == id);

            return(View(model));
        }