public JsonResult TutorRegister(TutorRegistration stdModel) { var result = false; var isEmailExists = false; try { var containsEmail = db.OnlineUsers.Where(x => x.UserName == stdModel.Email).FirstOrDefault(); if (containsEmail != null) { isEmailExists = true; return(Json(new { success = result, emailExists = isEmailExists }, JsonRequestBehavior.AllowGet)); } else { int?maxLoginId = db.OnlineUsers.Max(x => x.LoginID); int userRollId = db.UserRoles.Where(x => x.Code == "Tutor").Select(x => x.ID).SingleOrDefault(); if (maxLoginId == null) { maxLoginId = 0; } tblTutor std = new tblTutor(); std.TutorFirstName = stdModel.FirstName; std.TutorLastName = stdModel.LastName; std.AddressLine1 = stdModel.Address; std.ContactNo1 = stdModel.MobileNo; std.TutorEmail = stdModel.Email; //std.LoginID = maxLoginId + 1; std.DistrictId = Convert.ToInt32(stdModel.District); std.School_University = stdModel.University; std.Occupation = stdModel.Occupation; std.TutorNIC = stdModel.NICNo; std.AdminApproval = "Pending"; db.tblTutors.Add(std); db.SaveChanges(); OnlineUser user = new OnlineUser(); //user.LoginID = maxLoginId + 1; user.UserName = stdModel.Email; user.Password = stdModel.Password; user.IsVerified = false; user.VerificationCode = GetVerificationCode(); user.UserRoleId = userRollId; user.ProfileCompletionPercentage = 50; user.CreatedDate = DateTime.Now; db.OnlineUsers.Add(user); db.SaveChanges(); std.LoginID = (int)user.ID; user.LoginID = (int)user.ID; db.SaveChanges(); SendVerificationCode(stdModel.Email, user.VerificationCode); result = true; return(Json(new { success = result, emailExists = isEmailExists, loginId = user.LoginID, email = user.UserName }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new { success = result, message = ex.Message, emailExists = isEmailExists }, JsonRequestBehavior.AllowGet)); } }
public ActionResult Tutor(TutorRegistration userView, IEnumerable <HttpPostedFileBase> filesF) { UnitOfWork uow = new UnitOfWork(); ViewBag.Countries = uow.Countries.Get().ToList(); ViewBag.Subjects = uow.Subjects.Get().ToList(); //ViewBag.Languages = GetLanguages(); ViewBag.Languages = uow.Languages.Get(x => x.IsActive == true).ToList(); ViewBag.LanguageLevel = GetLanguageLevel(); if (!ModelState.IsValid) { userView.ContactNumber = userView.FullPhone; ModelState.AddModelError("error", Resources.Resources.ValidInfo); return(View(userView)); } string encryptedEmail = Encryptor.Encrypt(userView.Email); string encryptedPassword = Encryptor.Encrypt(userView.Password); string Token = Encryptor.Encrypt(DateTime.Now.Ticks.ToString()); UserService us = new UserService(); if (!us.DoesEmailExist(encryptedEmail)) { bool contactVerified = us.DoesContactNoExist(userView.ContactNumber); if (!contactVerified) { User user = new User() { UserID = Guid.NewGuid().ToString(), FirstName = userView.FirstName, LastName = userView.LastName, ContactNumber = userView.FullPhone, CreationDate = DateTime.Now, Email = encryptedEmail, Password = encryptedPassword, UserRole = (int)UserRoles.Teacher, Status = (int)UserStatus.Pending, ValidationToken = Token, Source = (int)SignupSource.App, Picture = "NoImage.jpg", Country = userView.Country }; TeacherDetail teacherDetail = new TeacherDetail { TeacherID = user.UserID, University = userView.University, SubjectExperties = userView.Subject, Qualification = userView.HigherQualification, Description = userView.Description, PreferedTime = userView.PreferedTime, YearsExperience = userView.Experience, CreationDate = DateTime.Now, Status = 1 }; TeacherAccountDetail accountDetail = new TeacherAccountDetail { AccountName = userView.AccountHolder, AccountNo = userView.AccountNo, BranchCode = userView.BranchCode, BranchName = userView.BranchName, PinNo = userView.Pin, Status = 1, TeacherId = user.UserID }; if (userView.SubjectTutored != null) { for (int i = 0; i < userView.SubjectTutored.Length; i++) { TeacherStage teacherStage = new TeacherStage { SubjectID = Convert.ToInt32(userView.SubjectTutored[i]), TeacherID = user.UserID }; uow.TeacherStages.Insert(teacherStage); } } //Teacher Languages //userView.Language = userView.Language.Remove(0, 1); //string[] langs = Regex.Split(userView.Language, "-"); //if(langs != null) //{ // for (int i = 0; i < langs.Length; i++) // { // string[] langa = Regex.Split(langs[i], ","); // TeacherLanguage lang = new TeacherLanguage // { // Language = Convert.ToInt32(langa[0]), // LangLevel = Convert.ToInt32(langa[1]), // TeacherID = user.UserID // }; // TeacherLanguage teacherLang = uow.TeacherLanguages.Get() // .Where(a => a.LangLevel == lang.LangLevel && a.Language == lang.Language && a.TeacherID == lang.TeacherID).FirstOrDefault(); // if (teacherLang == null) // { // uow.TeacherLanguages.Insert(lang); // } // } //} TeacherLanguage lang = new TeacherLanguage { Language = Convert.ToInt32(userView.Language), LangLevel = Convert.ToInt32(userView.LangLevel), TeacherID = user.UserID }; uow.TeacherLanguages.Insert(lang); uow.Users.Insert(user); uow.TeacherDetails.Insert(teacherDetail); uow.TeacherAccountDetails.Insert(accountDetail); if (filesF != null) { foreach (var file in filesF) { if (file != null) { string fileName = Guid.NewGuid().ToString() + Path.GetFileName(file.FileName); string path = Path.Combine(Server.MapPath("~/Content/images/teacher/"), fileName); file.SaveAs(path); TeacherFile teacherFile = new TeacherFile { FileName = fileName, TeacherID = user.UserID, Type = 1 }; uow.TeacherFiles.Insert(teacherFile); } } } uow.Save(); //send notification to admin Common.AddNotification(user.FirstName + " submitted his profile", "", user.UserID, "admin", "/admin/detail?id=" + user.UserID, (int)NotificationType.Teacher); //send confirmation Email start var scheme = Request.Url.Scheme + "://"; var host = Request.Url.Host + ":"; var port = Request.Url.Port; string host1 = scheme + host + port; string activationLink = "<a href='" + host1 + "/account/emailconfirmation?token=" + Token + "'>" + Resources.Resources.ClickHere + "</a>"; Utility.SendAccountActivationEmail(userView.Email, userView.FirstName, activationLink); //send confirmation Email end ModelState.AddModelError("success", Resources.Resources.AccountSuccess); TempData["Success"] = Resources.Resources.AccountSuccess; return(RedirectToAction("Login", "Account")); } else { ModelState.AddModelError("error", Resources.Resources.PhoneExists); } } else { ModelState.AddModelError("error", Resources.Resources.EmailAlreadyExists); } return(View(userView)); }