public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context) { SinglePageViewModel configurator = new SinglePageViewModel(); configurator.Context = context; return Task.FromResult(configurator as ConnectedServiceConfigurator); }
public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context) { SinglePageViewModel configurator = new SinglePageViewModel(); configurator.Context = context; return(Task.FromResult(configurator as ConnectedServiceConfigurator)); }
public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context) { SinglePageViewModel configurator = new SinglePageViewModel(); configurator.Context = context; // Initialize viewmodel with the update functionality, based on the context configurator.Initialize(); return(Task.FromResult(configurator as ConnectedServiceConfigurator)); }
public async Task <IActionResult> Index() { var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction("Step1")); } var siteStage = GetSiteStage(); if (siteStage == SiteStage.BeforeRegistration) { if (site.RegistrationOpens.HasValue) { AlertInfo = $"You can join {site.Name} on {site.RegistrationOpens.Value.ToString("d")}"; } else { AlertInfo = $"Registration for {site.Name} has not opened yet"; } return(RedirectToAction("Index", "Home")); } else if (siteStage >= SiteStage.ProgramEnded) { AlertInfo = $"{site.Name} has ended, please join us next time!"; return(RedirectToAction("Index", "Home")); } PageTitle = $"{site.Name} - Join Now!"; var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); var districtList = await _schoolService.GetDistrictsAsync(); SinglePageViewModel viewModel = new SinglePageViewModel() { RequirePostalCode = site.RequirePostalCode, ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject), SystemList = new SelectList(systemList.ToList(), "Id", "Name"), ProgramList = new SelectList(programList.ToList(), "Id", "Name"), SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name") }; if (systemList.Count() == 1) { var systemId = systemList.SingleOrDefault().Id; var branchList = await _siteService.GetBranches(systemId); if (branchList.Count() > 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } else { viewModel.BranchId = branchList.SingleOrDefault().Id; } viewModel.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); viewModel.SystemId = systemId; } if (programList.Count() == 1) { var programId = programList.SingleOrDefault().Id; var program = await _siteService.GetProgramByIdAsync(programId); viewModel.ProgramId = programList.SingleOrDefault().Id; viewModel.ShowAge = program.AskAge; viewModel.ShowSchool = program.AskSchool; } return(View(viewModel)); }
public async Task <IActionResult> Index(SinglePageViewModel model) { var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction("Step1")); } if (site.RequirePostalCode && string.IsNullOrWhiteSpace(model.PostalCode)) { ModelState.AddModelError("PostalCode", "The Zip Code field is required."); } bool askAge = false; bool askSchool = false; if (model.ProgramId.HasValue) { var program = await _siteService.GetProgramByIdAsync(model.ProgramId.Value); askAge = program.AskAge; askSchool = program.AskSchool; if (program.AgeRequired && !model.Age.HasValue) { ModelState.AddModelError("Age", "The Age field is required."); } if (program.SchoolRequired) { if (!model.NewEnteredSchool && !model.SchoolId.HasValue) { ModelState.AddModelError("SchoolId", "The School field is required."); } else if (model.NewEnteredSchool && string.IsNullOrWhiteSpace(model.EnteredSchoolName)) { ModelState.AddModelError("EnteredSchoolName", "The School Name field is required."); } } if (model.NewEnteredSchool && !model.SchoolDistrictId.HasValue && ((program.AskSchool && !string.IsNullOrWhiteSpace(model.EnteredSchoolName)) || program.SchoolRequired)) { ModelState.AddModelError("SchoolDistrictId", "The School District field is required."); } } if (ModelState.IsValid) { if (!askAge) { model.Age = null; } if (askSchool) { if (model.NewEnteredSchool) { model.SchoolId = null; } else { model.EnteredSchoolName = null; } } else { model.SchoolId = null; model.EnteredSchoolName = null; } User user = _mapper.Map <User>(model); user.SiteId = site.Id; try { await _userService.RegisterUserAsync(user, model.Password, model.SchoolDistrictId); var loginAttempt = await _authenticationService .AuthenticateUserAsync(user.Username, model.Password); await LoginUserAsync(loginAttempt); var questionnaireId = await _questionnaireService .GetRequiredQuestionnaire(loginAttempt.User.Id, loginAttempt.User.Age); if (questionnaireId.HasValue) { HttpContext.Session.SetInt32(SessionKey.PendingQuestionnaire, questionnaireId.Value); } return(RedirectToAction("Index", "Home")); } catch (GraException gex) { ShowAlertDanger("Could not create your account: ", gex); if (gex.Message.Contains("password")) { ModelState.AddModelError("Password", "Please correct the issues with your password."); } } } PageTitle = $"{site.Name} - Join Now!"; if (model.SystemId.HasValue) { var branchList = await _siteService.GetBranches(model.SystemId.Value); if (model.BranchId < 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } model.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); } var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); model.SystemList = new SelectList(systemList.ToList(), "Id", "Name"); model.ProgramList = new SelectList(programList.ToList(), "Id", "Name"); model.ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject); model.RequirePostalCode = site.RequirePostalCode; model.ShowAge = askAge; model.ShowSchool = askSchool; var districtList = await _schoolService.GetDistrictsAsync(); if (model.SchoolId.HasValue) { var schoolDetails = await _schoolService.GetSchoolDetailsAsync(model.SchoolId.Value); var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDisctrictId); model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name", schoolDetails.SchoolDisctrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", schoolDetails.SchoolTypeId); model.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name"); } else { model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); if (model.SchoolDistrictId.HasValue) { var typeList = await _schoolService.GetTypesAsync(model.SchoolDistrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", model.SchoolTypeId); var schoolList = await _schoolService.GetSchoolsAsync(model.SchoolDistrictId, model.SchoolTypeId); model.SchoolList = new SelectList(schoolList.ToList(), "Id", "Name"); } } return(View(model)); }
public SinglePageView(SinglePageViewModel viewModel) { this.DataContext = viewModel; this.InitializeComponent(); }
public async Task <IActionResult> Index() { string authCode = null; var useAuthCode = TempData.ContainsKey(EnteredAuthCode); if (useAuthCode) { authCode = (string)TempData[EnteredAuthCode]; } var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction(nameof(Step1))); } var siteStage = GetSiteStage(); if (!useAuthCode) { if (siteStage == SiteStage.BeforeRegistration) { if (site.RegistrationOpens.HasValue) { AlertInfo = _sharedLocalizer[Annotations.Info.YouCanJoinOn, site.Name, site.RegistrationOpens.Value.ToString("d")]; } else { AlertInfo = _sharedLocalizer[Annotations.Info.RegistrationNotOpenYet, site.Name]; } return(RedirectToAction(nameof(HomeController.Index), HomeController.Name)); } else if (siteStage >= SiteStage.ProgramEnded) { AlertInfo = _sharedLocalizer[Annotations.Info.ProgramEnded, site.Name]; return(RedirectToAction(nameof(HomeController.Index), HomeController.Name)); } } PageTitle = _sharedLocalizer[Annotations.Title.JoinNow, site.Name]; var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramSettingsViewModel> >(programList); var viewModel = new SinglePageViewModel { RequirePostalCode = site.RequirePostalCode, ProgramJson = JsonConvert.SerializeObject(programViewObject), SystemList = NameIdSelectList(systemList.ToList()), ProgramList = NameIdSelectList(programList.ToList()), SchoolList = NameIdSelectList(await _schoolService.GetSchoolsAsync()) }; var askIfFirstTime = await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskIfFirstTime); if (askIfFirstTime) { viewModel.AskFirstTime = EmptyNoYes(); } var(askEmailSubscription, askEmailSubscriptionText) = await GetSiteSettingStringAsync( SiteSettingKey.Users.AskEmailSubPermission); if (askEmailSubscription) { viewModel.AskEmailSubscription = EmptyNoYes(); viewModel.AskEmailSubscriptionText = askEmailSubscriptionText; } var(askActivityGoal, defaultDailyGoal) = await GetSiteSettingIntAsync( SiteSettingKey.Users.DefaultDailyPersonalGoal); if (askActivityGoal) { viewModel.DailyPersonalGoal = defaultDailyGoal; var pointTranslation = programList.First().PointTranslation; viewModel.TranslationDescriptionPastTense = pointTranslation.TranslationDescriptionPastTense.Replace("{0}", "").Trim(); viewModel.ActivityDescriptionPlural = pointTranslation.ActivityDescriptionPlural; } if (systemList.Count() == 1) { var systemId = systemList.Single().Id; var branchList = await _siteService.GetBranches(systemId); if (branchList.Count() > 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } else { viewModel.BranchId = branchList.SingleOrDefault()?.Id; } viewModel.BranchList = NameIdSelectList(branchList.ToList()); viewModel.SystemId = systemId; } if (programList.Count() == 1) { var programId = programList.Single().Id; var program = await _siteService.GetProgramByIdAsync(programId); viewModel.ProgramId = programId; viewModel.ShowAge = program.AskAge; viewModel.ShowSchool = program.AskSchool; } if (useAuthCode) { viewModel.AuthorizationCode = authCode; } return(View(viewModel)); }
public async Task <IActionResult> Index(SinglePageViewModel model) { var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction(nameof(Step1))); } if (site.RequirePostalCode && string.IsNullOrWhiteSpace(model.PostalCode)) { ModelState.AddModelError(nameof(model.PostalCode), _sharedLocalizer[ErrorMessages.Field, _sharedLocalizer[DisplayNames.ZipCode]]); } var askIfFirstTime = await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskIfFirstTime); if (!askIfFirstTime) { ModelState.Remove(nameof(model.IsFirstTime)); } var(askEmailSubscription, askEmailSubscriptionText) = await GetSiteSettingStringAsync( SiteSettingKey.Users.AskEmailSubPermission); if (!askEmailSubscription) { ModelState.Remove(nameof(model.EmailSubscriptionRequested)); } else { var subscriptionRequested = model.EmailSubscriptionRequested.Equals( DropDownTrueValue, StringComparison.OrdinalIgnoreCase); if (subscriptionRequested && string.IsNullOrWhiteSpace(model.Email)) { ModelState.AddModelError(nameof(model.Email), " "); ModelState.AddModelError(nameof(model.EmailSubscriptionRequested), _sharedLocalizer[Annotations.Required.EmailForSubscription]); } } var(askActivityGoal, defaultDailyGoal) = await GetSiteSettingIntAsync( SiteSettingKey.Users.DefaultDailyPersonalGoal); bool askAge = false; bool askSchool = false; if (model.ProgramId.HasValue) { var program = await _siteService.GetProgramByIdAsync(model.ProgramId.Value); askAge = program.AskAge; askSchool = program.AskSchool; if (program.AgeRequired && !model.Age.HasValue) { ModelState.AddModelError(DisplayNames.Age, _sharedLocalizer[ErrorMessages.Field, _sharedLocalizer[DisplayNames.Age]]); } if (program.SchoolRequired && !model.SchoolId.HasValue && !model.SchoolNotListed && !model.IsHomeschooled) { ModelState.AddModelError(nameof(model.SchoolId), _sharedLocalizer[ErrorMessages.Field, _sharedLocalizer[DisplayNames.School]]); } } if (ModelState.IsValid) { if (!askAge) { model.Age = null; } if (!askSchool) { model.SchoolId = null; model.SchoolNotListed = false; model.IsHomeschooled = false; } else if (model.IsHomeschooled) { model.SchoolId = null; model.SchoolNotListed = false; } else if (model.SchoolNotListed) { model.SchoolId = null; } User user = _mapper.Map <User>(model); user.SiteId = site.Id; if (askIfFirstTime) { user.IsFirstTime = model.IsFirstTime.Equals(DropDownTrueValue, StringComparison.OrdinalIgnoreCase); } if (askEmailSubscription) { user.IsEmailSubscribed = model.EmailSubscriptionRequested.Equals( DropDownTrueValue, StringComparison.OrdinalIgnoreCase); } if (askActivityGoal && user.DailyPersonalGoal > 0) { if (user.DailyPersonalGoal > Defaults.MaxDailyActivityGoal) { user.DailyPersonalGoal = Defaults.MaxDailyActivityGoal; } } else { user.DailyPersonalGoal = null; } try { bool useAuthCode = false; string sanitized = null; if (!string.IsNullOrWhiteSpace(model.AuthorizationCode)) { sanitized = model.AuthorizationCode.Trim().ToLowerInvariant(); useAuthCode = await _authorizationCodeService .ValidateAuthorizationCode(sanitized); if (!useAuthCode) { _logger.LogError($"Invalid auth code used on join: {model.AuthorizationCode}"); } } await _userService.RegisterUserAsync(user, model.Password, allowDuringCloseProgram : useAuthCode); var loginAttempt = await _authenticationService .AuthenticateUserAsync(user.Username, model.Password, useAuthCode); await LoginUserAsync(loginAttempt); if (useAuthCode) { string role = await _userService.ActivateAuthorizationCode(sanitized, loginAttempt.User.Id); if (!string.IsNullOrEmpty(role)) { var auth = await _authenticationService .RevalidateUserAsync(loginAttempt.User.Id); auth.Message = $"Code applied, you are a member of the role: {role}."; await LoginUserAsync(auth); } } await _mailService.SendUserBroadcastsAsync(loginAttempt.User.Id, false, true, true); var questionnaireId = await _questionnaireService .GetRequiredQuestionnaire(loginAttempt.User.Id, loginAttempt.User.Age); if (questionnaireId.HasValue) { HttpContext.Session.SetInt32(SessionKey.PendingQuestionnaire, questionnaireId.Value); } if (!TempData.ContainsKey(TempDataKey.UserJoined)) { TempData.Add(TempDataKey.UserJoined, true); } return(RedirectToAction(nameof(HomeController.Index), HomeController.Name)); } catch (GraException gex) { ShowAlertDanger(_sharedLocalizer[Annotations.Validate.CouldNotCreate, _sharedLocalizer[gex.Message]]); if (gex.GetType() == typeof(GraPasswordValidationException)) { ModelState.AddModelError(nameof(model.Password), _sharedLocalizer[Annotations.Validate.PasswordIssue]); } } } PageTitle = _sharedLocalizer[Annotations.Title.JoinNow, site.Name]; if (model.SystemId.HasValue) { var branchList = await _siteService.GetBranches(model.SystemId.Value); if (model.BranchId < 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } model.BranchList = NameIdSelectList(branchList.ToList()); } var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramSettingsViewModel> >(programList); model.SystemList = NameIdSelectList(systemList.ToList()); model.ProgramList = NameIdSelectList(programList.ToList()); model.SchoolList = NameIdSelectList(await _schoolService.GetSchoolsAsync()); model.ProgramJson = JsonConvert.SerializeObject(programViewObject); model.RequirePostalCode = site.RequirePostalCode; model.ShowAge = askAge; model.ShowSchool = askSchool; if (askIfFirstTime) { model.AskFirstTime = EmptyNoYes(); } if (askEmailSubscription) { model.AskEmailSubscription = EmptyNoYes(); model.AskEmailSubscriptionText = askEmailSubscriptionText; } if (askActivityGoal) { var pointTranslation = programList.First().PointTranslation; model.TranslationDescriptionPastTense = pointTranslation.TranslationDescriptionPastTense.Replace("{0}", "").Trim(); model.ActivityDescriptionPlural = pointTranslation.ActivityDescriptionPlural; } return(View(model)); }
public async Task <IActionResult> Index() { string authCode = null; var useAuthCode = TempData.ContainsKey(EnteredAuthCode); if (useAuthCode) { authCode = (string)TempData[EnteredAuthCode]; } var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction("Step1")); } var siteStage = GetSiteStage(); if (useAuthCode == false) { if (siteStage == SiteStage.BeforeRegistration) { if (site.RegistrationOpens.HasValue) { AlertInfo = $"You can join {site.Name} on {site.RegistrationOpens.Value.ToString("d")}"; } else { AlertInfo = $"Registration for {site.Name} has not opened yet"; } return(RedirectToAction("Index", "Home")); } else if (siteStage >= SiteStage.ProgramEnded) { AlertInfo = $"{site.Name} has ended, please join us next time!"; return(RedirectToAction("Index", "Home")); } } PageTitle = $"{site.Name} - Join Now!"; var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); var districtList = await _schoolService.GetDistrictsAsync(true); SinglePageViewModel viewModel = new SinglePageViewModel() { RequirePostalCode = site.RequirePostalCode, ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject), SystemList = new SelectList(systemList.ToList(), "Id", "Name"), ProgramList = new SelectList(programList.ToList(), "Id", "Name"), CategorySelectionAction = nameof(SchoolCategory), PublicSelected = true, ShowPrivateOption = await _schoolService.AnyPrivateSchoolsAsync(), ShowCharterOption = await _schoolService.AnyCharterSchoolsAsync(), SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"), AskEmailReminder = siteStage == SiteStage.RegistrationOpen && await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskPreregistrationReminder) }; var askIfFirstTime = await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskIfFirstTime); if (askIfFirstTime) { viewModel.AskFirstTime = EmptyNoYes(); } var(askActivityGoal, defaultDailyGoal) = await GetSiteSettingIntAsync( SiteSettingKey.Users.DefaultDailyPersonalGoal); if (askActivityGoal) { viewModel.DailyPersonalGoal = defaultDailyGoal; var pointTranslation = programList.First().PointTranslation; viewModel.TranslationDescriptionPastTense = pointTranslation.TranslationDescriptionPastTense.Replace("{0}", "").Trim(); viewModel.ActivityDescriptionPlural = pointTranslation.ActivityDescriptionPlural; } if (systemList.Count() == 1) { var systemId = systemList.SingleOrDefault().Id; var branchList = await _siteService.GetBranches(systemId); if (branchList.Count() > 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } else { viewModel.BranchId = branchList.SingleOrDefault().Id; } viewModel.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); viewModel.SystemId = systemId; } if (programList.Count() == 1) { var programId = programList.SingleOrDefault().Id; var program = await _siteService.GetProgramByIdAsync(programId); viewModel.ProgramId = programList.SingleOrDefault().Id; viewModel.ShowAge = program.AskAge; viewModel.ShowSchool = program.AskSchool; } if (useAuthCode) { viewModel.AuthorizationCode = authCode; } return(View(viewModel)); }
public async Task <IActionResult> Index(SinglePageViewModel model) { var site = await GetCurrentSiteAsync(); if (!site.SinglePageSignUp) { return(RedirectToAction("Step1")); } if (site.RequirePostalCode && string.IsNullOrWhiteSpace(model.PostalCode)) { ModelState.AddModelError("PostalCode", "The Zip Code field is required."); } var askIfFirstTime = await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskIfFirstTime); if (!askIfFirstTime) { ModelState.Remove(nameof(model.IsFirstTime)); } model.AskEmailReminder = GetSiteStage() == SiteStage.RegistrationOpen && await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskPreregistrationReminder); if (model.AskEmailReminder && model.PreregistrationReminderRequested && string.IsNullOrWhiteSpace(model.Email)) { ModelState.AddModelError(nameof(model.Email), "Please enter an email address to send the reminder to."); } var(askActivityGoal, defaultDailyGoal) = await GetSiteSettingIntAsync( SiteSettingKey.Users.DefaultDailyPersonalGoal); bool askAge = false; bool askSchool = false; if (model.ProgramId.HasValue) { var program = await _siteService.GetProgramByIdAsync(model.ProgramId.Value); askAge = program.AskAge; askSchool = program.AskSchool; if (program.AgeRequired && !model.Age.HasValue) { ModelState.AddModelError("Age", "The Age field is required."); } if (program.SchoolRequired && !model.SchoolId.HasValue && !model.SchoolNotListed && !model.IsHomeschooled) { ModelState.AddModelError("SchoolId", "The School field is required."); } } if (ModelState.IsValid) { if (!askAge) { model.Age = null; } if (!askSchool) { model.SchoolId = null; model.SchoolNotListed = false; model.IsHomeschooled = false; } else if (model.IsHomeschooled) { model.SchoolId = null; model.SchoolNotListed = false; } else if (model.SchoolNotListed) { model.SchoolId = null; } User user = _mapper.Map <User>(model); user.SiteId = site.Id; if (askIfFirstTime) { user.IsFirstTime = model.IsFirstTime.Equals(DropDownTrueValue, System.StringComparison.OrdinalIgnoreCase); } if (!model.AskEmailReminder) { user.PreregistrationReminderRequested = false; } if (askActivityGoal && user.DailyPersonalGoal > 0) { if (user.DailyPersonalGoal > Defaults.MaxDailyActivityGoal) { user.DailyPersonalGoal = Defaults.MaxDailyActivityGoal; } } else { user.DailyPersonalGoal = null; } try { bool useAuthCode = false; string sanitized = null; if (!string.IsNullOrWhiteSpace(model.AuthorizationCode)) { sanitized = _codeSanitizer.Sanitize(model.AuthorizationCode, 255); useAuthCode = await _userService.ValidateAuthorizationCode(sanitized); if (useAuthCode == false) { _logger.LogError($"Invalid auth code used on join: {model.AuthorizationCode}"); } } await _userService.RegisterUserAsync(user, model.Password, allowDuringCloseProgram : useAuthCode); var loginAttempt = await _authenticationService .AuthenticateUserAsync(user.Username, model.Password, useAuthCode); await LoginUserAsync(loginAttempt); if (useAuthCode) { string role = await _userService.ActivateAuthorizationCode(sanitized, loginAttempt.User.Id); if (!string.IsNullOrEmpty(role)) { var auth = await _authenticationService .RevalidateUserAsync(loginAttempt.User.Id); auth.AuthenticationMessage = $"Code applied, you are a member of the role: <strong>{role}</strong>."; await LoginUserAsync(auth); } } await _mailService.SendUserBroadcastsAsync(loginAttempt.User.Id, false, true, true); var questionnaireId = await _questionnaireService .GetRequiredQuestionnaire(loginAttempt.User.Id, loginAttempt.User.Age); if (questionnaireId.HasValue) { HttpContext.Session.SetInt32(SessionKey.PendingQuestionnaire, questionnaireId.Value); } return(RedirectToAction("Index", "Home")); } catch (GraException gex) { ShowAlertDanger("Could not create your account: ", gex); if (gex.Message.Contains("password")) { ModelState.AddModelError("Password", "Please correct the issues with your password."); } } } PageTitle = $"{site.Name} - Join Now!"; if (model.SystemId.HasValue) { var branchList = await _siteService.GetBranches(model.SystemId.Value); if (model.BranchId < 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } model.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); } var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); model.SystemList = new SelectList(systemList.ToList(), "Id", "Name"); model.ProgramList = new SelectList(programList.ToList(), "Id", "Name"); model.ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject); model.RequirePostalCode = site.RequirePostalCode; model.ShowAge = askAge; model.ShowSchool = askSchool; model.CategorySelectionAction = nameof(SchoolCategory); var districtList = await _schoolService.GetDistrictsAsync(true); if (model.PrivateSelected) { model.PublicSelected = false; model.CharterSelected = false; model.IsHomeschooled = false; model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); model.SchoolList = new SelectList( await _schoolService.GetPrivateSchoolListAsync(), "Id", "Name"); } else if (model.CharterSelected) { model.PublicSelected = false; model.PrivateSelected = false; model.IsHomeschooled = false; model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); model.SchoolList = new SelectList( await _schoolService.GetCharterSchoolListAsync(), "Id", "Name"); } else if (model.IsHomeschooled) { model.PublicSelected = false; model.PrivateSelected = false; model.CharterSelected = false; model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); } else { model.PublicSelected = true; model.PrivateSelected = false; model.CharterSelected = false; model.IsHomeschooled = false; if (model.SchoolId.HasValue) { var schoolDetails = await _schoolService.GetSchoolDetailsAsync(model.SchoolId.Value); var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDistrictId); model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name", schoolDetails.SchoolDistrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", schoolDetails.SchoolTypeId); model.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name"); ModelState.Remove(nameof(model.SchoolTypeId)); } else { model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); if (model.SchoolDistrictId.HasValue) { var typeList = await _schoolService.GetTypesAsync(model.SchoolDistrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", model.SchoolTypeId); var schoolList = await _schoolService.GetSchoolsAsync(model.SchoolDistrictId, model.SchoolTypeId); model.SchoolList = new SelectList(schoolList.ToList(), "Id", "Name"); } } } if (askIfFirstTime) { model.AskFirstTime = EmptyNoYes(); } if (askActivityGoal) { var pointTranslation = programList.First().PointTranslation; model.TranslationDescriptionPastTense = pointTranslation.TranslationDescriptionPastTense.Replace("{0}", "").Trim(); model.ActivityDescriptionPlural = pointTranslation.ActivityDescriptionPlural; } return(View(model)); }
public async Task <IActionResult> SchoolCategory(SinglePageViewModel model) { ModelState.Clear(); model.PublicSelected = false; model.PrivateSelected = false; model.CharterSelected = false; model.IsHomeschooled = false; if (model.SetPrivate) { model.PrivateSelected = true; model.SchoolList = new SelectList( await _schoolService.GetPrivateSchoolListAsync(), "Id", "Name"); } else if (model.SetCharter) { model.CharterSelected = true; model.SchoolList = new SelectList( await _schoolService.GetCharterSchoolListAsync(), "Id", "Name"); } else if (model.SetHomeschool) { model.IsHomeschooled = true; } else { model.PublicSelected = true; } model.CategorySelectionAction = nameof(SchoolCategory); model.SchoolDistrictList = new SelectList( await _schoolService.GetDistrictsAsync(true), "Id", "Name"); model.SchoolId = null; model.SchoolDistrictId = null; model.SchoolNotListed = false; var site = await GetCurrentSiteAsync(); PageTitle = $"{site.Name} - Join Now!"; if (model.SystemId.HasValue) { var branchList = await _siteService.GetBranches(model.SystemId.Value); if (model.BranchId < 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } model.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); } var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); model.SystemList = new SelectList(systemList.ToList(), "Id", "Name"); model.ProgramList = new SelectList(programList.ToList(), "Id", "Name"); model.ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject); model.RequirePostalCode = site.RequirePostalCode; model.AskEmailReminder = GetSiteStage() == SiteStage.RegistrationOpen && await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskPreregistrationReminder); if (model.ProgramId.HasValue) { var program = await _siteService.GetProgramByIdAsync(model.ProgramId.Value); model.ShowAge = program.AskAge; model.ShowSchool = program.AskSchool; } var askIfFirstTime = await GetSiteSettingBoolAsync(SiteSettingKey.Users.AskIfFirstTime); if (askIfFirstTime) { model.AskFirstTime = EmptyNoYes(); } var(askActivityGoal, defaultDailyGoal) = await GetSiteSettingIntAsync( SiteSettingKey.Users.DefaultDailyPersonalGoal); if (askActivityGoal) { var pointTranslation = programList.First().PointTranslation; model.TranslationDescriptionPastTense = pointTranslation.TranslationDescriptionPastTense.Replace("{0}", "").Trim(); model.ActivityDescriptionPlural = pointTranslation.ActivityDescriptionPlural; } return(View(nameof(Index), model)); }
public ActionResult Index() { SinglePageViewModel singlevm = new SinglePageViewModel(); try { GroupWiseDetails objGrpWise = new GroupWiseDetails(); singlevm.lstGroupWiseDetails = SPR.GetGroupWiseData(); foreach (var item in singlevm.lstGroupWiseDetails) { objGrpWise.CustCount = objGrpWise.CustCount + item.CustCount; objGrpWise.BulkUploadCount = objGrpWise.BulkUploadCount + item.BulkUploadCount; objGrpWise.Total = objGrpWise.Total + item.Total; } objGrpWise.CustName = "Total"; singlevm.lstGroupWiseDetails.Add(objGrpWise); singlevm.lstCommunication = SPR.GetCommunicationWhatsAppExpiryData(); var userDetails = (CustomerLoginDetail)Session["UserSession"]; userDetails.CustomerName = CR.GetCustomerName(userDetails.GroupId); Session["UserSession"] = userDetails; singlevm.lstCSMembers = CR.GetRMAssigned(); singlevm.lstsummarytable = SPR.GetSinglePageSummaryTable(); singlevm.lstnontransactingGrp = SPR.GetSinglePageNonTransactingGroups(); singlevm.lstnontransactingOutlet = SPR.GetNonTransactingOutlet(""); singlevm.lstlowtransactingOutlet = SPR.GetLowTransactingOutlet(""); singlevm.lstCitywiseData = SPR.GetCityWiseData(); if (singlevm.lstCitywiseData != null) { var categories = singlevm.lstCitywiseData.GroupBy(x => x.CategoryName).Select(y => y.First()).ToList(); singlevm.lstCategories = categories; var cities = singlevm.lstCitywiseData.GroupBy(x => x.CityName).Select(y => y.First()).ToList(); List <CitywiseReport> objData = new List <CitywiseReport>(); foreach (var item in cities) { CitywiseReport objItem = new CitywiseReport(); long cityCount = singlevm.lstCitywiseData.Where(x => x.CityName == item.CityName).Sum(y => y.MemberBase); objItem.CityName = item.CityName; objItem.CategoryName = item.CategoryName; objItem.MemberBase = cityCount; objData.Add(objItem); } objData = objData.OrderByDescending(x => x.MemberBase).ToList(); cities = objData.GroupBy(x => x.CityName).Select(y => y.First()).ToList(); List <CitywiseReport> objCategoryData = new List <CitywiseReport>(); foreach (var category in categories) { CitywiseReport objItem = new CitywiseReport(); long categoryCount = singlevm.lstCitywiseData.Where(x => x.CategoryName == category.CategoryName).Sum(y => y.MemberBase); objItem.CategoryName = category.CategoryName; objItem.MemberBase = categoryCount; objCategoryData.Add(objItem); } singlevm.lstCategoriesTotal = objCategoryData; singlevm.GrandTotal = objCategoryData.Sum(x => x.MemberBase); singlevm.lstCities = cities; } } catch (Exception ex) { newexception.AddException(ex, "Single Page"); } return(View(singlevm)); }