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)); }
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)); }