public ActionResult UpdateStudent() { // await ParseUser.LogInAsync("*****@*****.**", "123456"); ParseUser user = Session.GetLoggedInUser(); StudentDetailsViewModel model = new StudentDetailsViewModel(); ViewBag.IsAdmin = (user != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; if (user == null) return RedirectToAction("Login"); var repository = new ParseRepository(new WebCacheProvider(HttpContext.ApplicationInstance.Context)); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); var contentTypes = worldContentTypeRetriever.GetContentTypes(user, Session.GetLoggedInUserRoleName()); var currencies = repository.FindCurrencies(); var uiLanguages = repository.FindInterfaceLanguages(); IEnumerable<UserGroup> groups = ( repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = ( repository.FindSubGroups()).ToArray(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userStatuses = repository.FindUserStatus(); model.DeviceTypes = repository.FindDeviceTypes(); model.Countries = repository.FindCountries(); model.UserPrefferences.ContentTypes = contentTypes; model.UserPrefferences.Currencies = currencies; model.UserPrefferences.Languages = uiLanguages; model.Groups = groups; model.SubGroups = subGroups; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.UserStatusValues = userStatuses; model.FirstName = user.GetString("firstName_he_il");// user.Keys.Contains("firstName") ? user["firstName"] as string : string.Empty; model.LastName = user.GetString("lastName_he_il");// user.Keys.Contains("lastName") ? user["lastName"] as string : string.Empty; model.Email = user.Keys.Contains("email") ? user["email"] as string : string.Empty; model.Phone = user.Keys.Contains("phoneNumber") ? user["phoneNumber"] as string : string.Empty; model.Email = user.Keys.Contains("email") ? user["email"] as string : string.Empty; model.MailRecipientAddress = user.GetString("mailRecipientAddress"); model.UserPrefferences.SelectedContentType = user.GetPointerObjectId("contentType"); model.UserPrefferences.SelectedCurrency = user.GetPointerObjectId("currency"); model.UserPrefferences.SelectedLanguage = user.GetPointerObjectId("interfaceLanguage"); model.CountryOfResidence = user.GetPointerObjectId("residenceCountry"); model.SelectedDeviceType = user.Keys.Contains("deviceType") && (user["deviceType"] as ParseObject) != null ? (user["deviceType"] as ParseObject).FetchIfNeededAsync().Result.ObjectId : string.Empty; model.SelectedDeviceType = model.DeviceTypes.FirstOrDefault(deviceType => deviceType.Key.Split(new [] { '|' })[0] == model.SelectedDeviceType).Key; ViewBag.DeviceUnSupportedText = Strings.GetLocalizedString(Strings.UnSupportedDevice); var userAdminData = user.GetPointerObject<UserAdminData>("adminData"); if (userAdminData != null) { model.AdminData.TCPTeacherCommission = userAdminData.TcpTeacherCommission.ToString("n2"); model.AdminData.AgentUserName =userAdminData.Agent!=null? userAdminData.Agent.Username:string.Empty; model.AdminData.ACPAgentCommission = userAdminData.AcpTeacherCommission.ToString("n2"); model.AdminData.STRCommissionRatio = userAdminData.StrCommissionRatio; model.AdminData.UserPublishingStatus = userAdminData.GetPointerObjectId("userPublishingStatus"); model.AdminData.UserStatus = userAdminData.GetPointerObjectId("userStatus"); model.AdminData.LockCountry = userAdminData.LockCountry; model.AdminData.LockCurrency = userAdminData.LockCurrency; model.AdminData.AdminRemarks = userAdminData.AdminRemarks; if (userAdminData.Group != null) { var savedSelectedGroup = userAdminData.Group.ObjectId; var selectedSubGroup = subGroups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); var selectedGroup = groups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); if (selectedSubGroup != null) { selectedGroup = groups.Single(o => o.ObjectId == selectedSubGroup.Parent.ObjectId); } model.AdminData.Group = selectedGroup != null ? selectedGroup.ObjectId : string.Empty; model.AdminData.SubGroup = selectedSubGroup != null ? selectedSubGroup.ObjectId : string.Empty; } } model.Messages.CountryLocked = Strings.GetLocalizedString(Strings.CountryLocked); model.Messages.SugOsekLocked = Strings.GetLocalizedString(Strings.SugOsekLocked); model.Messages.CurrencyLocked = Strings.GetLocalizedString(Strings.CurrencyLocked); model.Messages.SugNirutLocked = Strings.GetLocalizedString(Strings.SugNirutLocked); model.Messages.AgentNotFound = Strings.GetLocalizedString(Strings.AgentNotFound); if (user.GetStatus() == UserStatusStrings.AppUser) { model.AppUserMessage = string.Format(MyMentorResources.appUserMoreDetails, user.GetFullName(Language.CurrentLanguageCode)); } return View(model); }
public async Task<ActionResult> UpdateStudent(StudentDetailsViewModel model) { var repository = RepositoryFactory.GetInstance(Session); try { var registerAsTeacher = model.RegisterAsTeacher; ViewBag.IsAdmin = (Session.GetLoggedInUser() != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; IEnumerable<UserGroup> groups = (repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = (repository.FindSubGroups()).ToArray(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userStatuses = repository.FindUserStatus(); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); model.UserRole = RoleNames.STUDENTS; model.DeviceTypes = repository.FindDeviceTypes(); model.Countries = repository.FindCountries(); model.UserPrefferences.ContentTypes = worldContentTypeRetriever.GetContentTypes(Session.GetLoggedInUser(), Session.GetImpersonatingUserName()); model.UserPrefferences.Currencies = repository.FindCurrencies(); model.UserPrefferences.Languages = repository.FindInterfaceLanguages(); model.Groups = groups; model.SubGroups = subGroups; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.UserStatusValues = userStatuses; // var selectedCountry = model.Countries.FirstOrDefault(country => country.Key == model.CountryOfResidence); // model.CountryOfResidence = selectedCountry; try { await new MyMentorUserManager(repository, Session).UpdateStudent(model); model.UpdateSuccess = true; } catch (Exception ex) { mLogger.Log(LogLevel.Error, ex.ToString); model.UpdateSuccess = false; } if (model.UpdateSuccess != null) { if (registerAsTeacher) { ViewBag.UpdateStudentMessage = model.UpdateSuccess.Value ? Strings.GetLocalizedString(Strings.RegistrationSuccessStudentBucomesTeacher) : Strings.GetLocalizedString(Strings.UpdateStudentFail); if (model.UpdateSuccess.Value) ViewBag.UpdateStudentMessage = string.Format(ViewBag.UpdateStudentMessage, model.FirstName); } else { ViewBag.UpdateStudentMessage = model.UpdateSuccess.Value ? Strings.GetLocalizedString(Strings.UpdateStudentSuccess) : Strings.GetLocalizedString(Strings.UpdateStudentFail); } } SetUserPrefferences(model.UserPrefferences); return View(model); } finally { repository.Dispose(); } }
public ActionResult Update(string regAsTeacher = null) { var repository = RepositoryFactory.GetInstance(Session); try { ParseUser user = Session.GetLoggedInUser(); ViewBag.IsAdmin = (user != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; if (user == null) return RedirectToAction("Login"); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); var model = new UserDetailsViewModel(); model.IsTeacher = user.GetBool("registerAsTeacher"); if (!model.IsTeacher && regAsTeacher == null) { return RedirectToAction("UpdateStudent"); } user["registerAsTeacher"] = true; var residences = repository.FindAllResidences(); var sugTavs = repository.FindSugTav(); var sugTagmuls = repository.FindSugTagmul(); var sugNirut = repository.FindSugNirut(); var sugMehira = repository.FindSugMehira(); var sugLanguages = repository.FindLanguages(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userResidence = residences.FirstOrDefault(obj => obj.Name.Equals(user.GetString("residenceCountry"))); var deviceTypes = repository.FindDeviceTypes(); var contentTypes = worldContentTypeRetriever.GetContentTypes(user, Session.GetLoggedInUserRoleName()); var currencies = repository.FindCurrencies(); var uiLanguages = repository.FindInterfaceLanguages(); var userStatuses = repository.FindUserStatus(); IEnumerable<UserGroup> groups = (repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = (repository.FindSubGroups()).ToArray(); var sugOseks = repository.FindAllSugOsek(); model.SugTav = sugTavs; model.SaleStatus = sugMehira; model.SugTagmuls = sugTagmuls.ConvertToSugTagmul(userResidence != null && userResidence.Israel); model.SugNiruts = sugNirut; model.SugMehiras = sugMehira; model.SugLanguages = sugLanguages; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.Groups = groups; model.SubGroups = subGroups; model.DeviceTypes = deviceTypes; model.UserPrefferences.ContentTypes = contentTypes; model.UserPrefferences.Currencies = currencies; model.UserPrefferences.Languages = uiLanguages; model.UserStatusValues = userStatuses; model.SugOseks = sugOseks; model.SelectedSugTav = user.GetPointerObjectId("sugTav"); model.Residence = user.GetPointerObjectId("residence"); model.SelectedSugTagmul = user.GetPointerObjectId("sugTagmul"); model.SelectedSugNirut = user.GetPointerObjectId("sugNirut"); model.SelectedSugMehiras = user.GetPointerObjectId("sugMehira"); model.TeachingLanguage1 = user.GetPointerObjectId("teachingLanguage1"); model.TeachingLanguage2 = user.GetPointerObjectId("teachingLanguage2"); model.TeachingLanguage3 = user.GetPointerObjectId("teachingLanguage3"); model.UserPrefferences.SelectedContentType = user.GetPointerObjectId("contentType"); model.UserPrefferences.SelectedCurrency = user.GetPointerObjectId("currency"); model.UserPrefferences.SelectedLanguage = user.GetPointerObjectId("interfaceLanguage"); model.SelectedSugOsek = user.GetPointerObjectId("sugOsek"); // model.SelectedUserStatus = currentUserStatus.ObjectId; model.FirstName = user.GetString("firstName_he_il").Trim(); model.LastName = user.GetString("lastName_he_il").Trim(); model.GovId = user.GetString("govId"); model.FirstNameEnglish = user.GetString("firstName_en_us").Trim(); model.LastNameEnglish = user.GetString("lastName_en_us").Trim(); model.Email = user.GetString("email"); model.Phone = user.GetString("phoneNumber"); model.MailRecipientAddress = user.GetString("mailRecipientAddress"); model.OtherTeachingLocation = user.GetString("otherTeachingLocation"); model.TeachesFromYear = user.GetString("teachesFromYear"); model.TeacherHomePage = user.GetString("teacherHomePage"); model.CityOfResidence = user.GetString("cityOfResidence_he_il"); model.CityOfResidence_en_us = user.GetString("cityOfResidence_en_us"); model.SelectedSaleStatus = user.GetString("saleStatus"); model.TeacherDescription = user.GetString("teacherDescription"); model.TeacherDescriptionEnglish = user.GetString("teacherDescription_en_us"); model.SelectedDeviceType = user.GetPointerObjectId("deviceType"); model.SelectedDeviceType = model.DeviceTypes.FirstOrDefault(deviceType => deviceType.Key.Split(new char[] { '|' })[0] == model.SelectedDeviceType).Key; model.PaymentDetails.AccountNumber = user.GetString("bankAccountNumber"); model.PaymentDetails.IRSNumber = user.GetString("irsFileNumber"); model.PaymentDetails.VATNumber = user.GetString("vatFileNumber"); model.PaymentDetails.BankName = user.GetString("bankName"); model.PaymentDetails.BankBranch = user.GetString("bankBranch"); model.PaymentDetails.BeneficiaryFulllName = user.GetString("beneficiaryFulllName"); model.PaymentDetails.PayPalEmail = user.GetString("paypalEmail"); model.LessonCost = user.GetNullableInt("lessonCost"); model.ExtraFeeForStudentHouse = user.GetNullableInt("extraFeeForStudentHouse"); model.Ashkenaz = user.GetBool("isAshkenazVersion"); model.Morocco = user.GetBool("isMorocoVersion"); model.Sefaradi = user.GetBool("isSepharadiVersion"); model.Yemen = user.GetBool("isYemenVersion"); model.OtherTeachingNosah = user.GetBool("isOtherTeachingNosah"); model.TeachesAtHome = user.GetBool("teachesAtHome"); model.TeachesAtStudentHouse = user.GetBool("teachesAtStudentHome"); model.ShowContanctDetails = user.GetBool("showContactDetails"); var userAdminData = user.GetPointerObject<UserAdminData>("adminData"); var agentUser = userAdminData.GetPointerObject<ParseUser>("agent"); if (userAdminData != null) { model.AdminData.TCPTeacherCommission = userAdminData.TcpTeacherCommission.ToString("n2"); model.AdminData.AgentUserName = agentUser != null ? agentUser.Username : string.Empty; model.AdminData.ACPAgentCommission = userAdminData.AcpTeacherCommission.ToString("n2"); model.AdminData.STRCommissionRatio = userAdminData.StrCommissionRatio; model.AdminData.UserPublishingStatus = userAdminData.GetPointerObjectId("userPublishingStatus"); model.AdminData.UserStatus = userAdminData.GetPointerObjectId("userStatus"); model.AdminData.LockCountry = userAdminData.LockCountry; model.AdminData.LockCurrency = userAdminData.LockCurrency; model.AdminData.LockSugNirut = userAdminData.LockSugNirut; model.AdminData.LockSugOsek = userAdminData.LockSugOsek; model.AdminData.OriginalTaxPercent = userAdminData.OriginalTaxPercent; model.AdminData.AdminRemarks = userAdminData.AdminRemarks; if (userAdminData.Group != null) { var savedSelectedGroup = userAdminData.Group.ObjectId; var selectedSubGroup = subGroups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); var selectedGroup = groups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); if (selectedSubGroup != null) { selectedGroup = groups.Single(o => o.ObjectId == selectedSubGroup.Parent.ObjectId); } model.AdminData.Group = selectedGroup != null ? selectedGroup.ObjectId : string.Empty; model.AdminData.SubGroup = selectedSubGroup != null ? selectedSubGroup.ObjectId : string.Empty; } } model.PictureUrl = user.Keys.Contains("picture") ? ((ParseFile)user["picture"]).Url.ToString() : MentorSystem.DEFAULT_PROFILE_IMAGE; var residenceTitle = residences.FirstOrDefault(residence => residence.Id == model.Residence); if (residenceTitle != null) model.ResidenceTitle = !string.IsNullOrEmpty(model.Residence) ? residenceTitle.Name : string.Empty; var residenceCountry = GetResidenceCountry(residences, model.Residence); model.ResidenceCountry = residenceCountry.Name; ViewBag.DeviceUnSupportedText = Strings.GetLocalizedString(Strings.UnSupportedDevice); model.Messages.CountryLocked = Strings.GetLocalizedString(Strings.CountryLocked); model.Messages.SugOsekLocked = Strings.GetLocalizedString(Strings.SugOsekLocked); model.Messages.CurrencyLocked = Strings.GetLocalizedString(Strings.CurrencyLocked); model.Messages.SugNirutLocked = Strings.GetLocalizedString(Strings.SugNirutLocked); model.Messages.AgentNotFound = Strings.GetLocalizedString(Strings.AgentNotFound); return View("Update", model); } finally { repository.Dispose(); } }