private async Task SaveContactPreferences(ContactPreferencesVm viewModel) { SaveContactPreferencesDto contactPreferences; var cached = await GetFromCache <ContactPreferencesRetrievedDto>($"contact-preferences-{GetCaseflowUserId()}"); if (cached != null) { if (!viewModel.AllowContactBySms && !string.IsNullOrWhiteSpace(cached.PrimaryPhone)) { viewModel.MobileNumber = cached.PrimaryPhone; } contactPreferences = BuildSaveContactPreferencesModel(viewModel, cached); } else { var contactPreferencesRetrieved = await _myProfileService.GetContactPreferences(viewModel.LowellReference); if (!viewModel.AllowContactBySms && !string.IsNullOrWhiteSpace(contactPreferencesRetrieved.PrimaryPhone)) { viewModel.MobileNumber = contactPreferencesRetrieved.PrimaryPhone; } contactPreferences = BuildSaveContactPreferencesModel(viewModel, contactPreferencesRetrieved); } await _myProfileService.SaveContactPreferences(contactPreferences); }
public async Task <IActionResult> MobileNumberPost(ContactPreferencesVm contactPreferencesVm) { Logger.LogInformation("Saving MobileNumber."); if (!ModelState.IsValid) { Logger.LogDebug("Modelstate is invalid"); return(View("MobileNumber", contactPreferencesVm)); } if (string.IsNullOrWhiteSpace(contactPreferencesVm.MobileNumber)) { ModelState.AddModelError("MobileNumber", "Please enter a valid mobile number"); return(View("MobileNumber", contactPreferencesVm)); } var contactPreferencesCached = await GetFromCache <ContactPreferencesRetrievedDto>($"contact-preferences-{GetCaseflowUserId()}"); await SaveMobileNumber(contactPreferencesVm); _gtmService.RaiseMobilePhoneNumberChangeEvent(contactPreferencesVm, LoggedInUserId, contactPreferencesVm.MobileNumber, contactPreferencesCached.PrimaryPhone); await _webActivityService.LogMobilePhoneNumberUpdateChange(contactPreferencesVm.LowellReference, LoggedInUserId, contactPreferencesVm.MobileNumber, contactPreferencesCached.PrimaryPhone); return(RedirectToAction("Index")); }
public void RaiseMobileUpdatePageEvent(ContactPreferencesVm vm, string userId) { vm.GtmEvents.Add(new GtmEvent { gtm_event = GtmEvents.ContactPreference, guid = userId, action_taken = "Mobile Update Page Viewed" }); }
public void RaiseMobilePhoneNumberChangeEvent(ContactPreferencesVm vm, string userId, string newValue, string oldValue) { if (newValue != oldValue) { vm.GtmEvents.Add(new GtmEvent { gtm_event = GtmEvents.ContactPreference, guid = userId, action_taken = "Mobile number updated" }); } }
private async Task LogEvents(ContactPreferencesVm contactPreferencesVm) { var contactPreferencesCached = await GetFromCache <ContactPreferencesRetrievedDto>($"contact-preferences-{GetCaseflowUserId()}"); _gtmService.RaiseContactPreferecesSMSChangeEvent(contactPreferencesVm, LoggedInUserId, contactPreferencesVm.AllowContactBySms, contactPreferencesCached.ContactPreferenceSMS); await _webActivityService.LogContactPreferencesSMSChange(contactPreferencesVm.LowellReference, LoggedInUserId, contactPreferencesVm.AllowContactBySms, contactPreferencesCached.ContactPreferenceSMS); _gtmService.RaiseContactPreferecesEmailChangeEvent(contactPreferencesVm, LoggedInUserId, contactPreferencesVm.AllowContactByEmail, contactPreferencesCached.ContactPreferenceEmail); await _webActivityService.LogContactPreferecesEmailChange(contactPreferencesVm.LowellReference, LoggedInUserId, contactPreferencesVm.AllowContactByEmail, contactPreferencesCached.ContactPreferenceEmail); _gtmService.RaiseMobilePhoneNumberChangeEvent(contactPreferencesVm, LoggedInUserId, contactPreferencesVm.MobileNumber, contactPreferencesCached.PrimaryPhone); await _webActivityService.LogMobilePhoneNumberUpdateChange(contactPreferencesVm.LowellReference, LoggedInUserId, contactPreferencesVm.MobileNumber, contactPreferencesCached.PrimaryPhone); }
public void RaiseContactPreferecesEmailChangeEvent(ContactPreferencesVm vm, string userId, bool newValue, bool oldValue) { if (newValue != oldValue) { string accountActivities = newValue ? "Email selected" : "Email deselected"; vm.GtmEvents.Add(new GtmEvent { gtm_event = GtmEvents.ContactPreference, guid = userId, action_taken = accountActivities }); } }
public async Task <IActionResult> ContactPreferences(ContactPreferencesVm contactPreferencesVm) { if (!_portalSetting.Features.EnableContactPreferences) { return(RedirectToAction("Index")); } Logger.LogInformation("Navigated to MyProfile/ContactPreferences."); _gtmService.RaiseContactPreferecesPageEvent(contactPreferencesVm, LoggedInUserId); await _webActivityService.LogContactPreferencesPageVist(contactPreferencesVm.LowellReference, LoggedInUserId); return(View(contactPreferencesVm)); }
private SaveContactPreferencesDto BuildSaveContactPreferencesModel(ContactPreferencesVm viewModel, ContactPreferencesRetrievedDto dto) { var contactPreferences = new SaveContactPreferencesDto { LowellReference = viewModel.LowellReference, CaseflowUserId = GetCaseflowUserId(), ContactPreferenceEmail = viewModel.AllowContactByEmail, ContactPreferenceSMS = viewModel.AllowContactBySms, PrimaryPhone = viewModel.MobileNumber, BusinessPhone = dto.BusinessPhone, EmailAddress = dto.EmailAddress, EmailConfirmedDate = dto.EmailConfirmedDate, Forename = dto.Forename, HomePhone = dto.HomePhone, OtherPhone = dto.OtherPhone, PaymentReminderEmails = dto.PaymentReminderEmails, PhoneChangedDate = dto.PhoneChangedDate, ReminderEmailsUpdBy = dto.ReminderEmailsUpdBy, Title = dto.Title, Salutation = dto.Salutation, StrategyEmails = dto.StrategyEmails, StrategyEmailsUpdBy = dto.StrategyEmailsUpdBy, StrategyEmailsUpdOn = dto.StrategyEmailsUpdOn, Surname = dto.Surname, Name = dto.Name, ReminderEmailsUpdOn = dto.ReminderEmailsUpdOn, Address = new List <Address>(), }; foreach (var item in dto.Address) { contactPreferences.Address.Add(new Address { Line1 = item.Line1, Line2 = item.Line2, Line3 = item.Line3, Line4 = item.Line4, Postcode = item.Postcode, Type = item.Type }); } return(contactPreferences); }
private async Task SaveMobileNumber(ContactPreferencesVm viewModel) { SaveContactPreferencesDto contactPreferences; var cached = await GetFromCache <ContactPreferencesRetrievedDto>($"contact-preferences-{GetCaseflowUserId()}"); if (cached != null) { contactPreferences = BuildSaveContactPreferencesModel(viewModel, cached); } else { var contactPreferencesRetrieved = await _myProfileService.GetContactPreferences(viewModel.LowellReference); contactPreferences = BuildSaveContactPreferencesModel(viewModel, contactPreferencesRetrieved); } await _myProfileService.SaveContactPreferences(contactPreferences); }
public async Task <IActionResult> ContactPreferencesPost(ContactPreferencesVm contactPreferencesVm) { Logger.LogInformation("Saving ContactPreferences data."); if (!ModelState.IsValid) { Logger.LogDebug("Modelstate is invalid"); return(View("ContactPreferences", contactPreferencesVm)); } if (contactPreferencesVm.AllowContactBySms && string.IsNullOrWhiteSpace(contactPreferencesVm.MobileNumber)) { ModelState.AddModelError("MobileNumber", "Please enter a valid mobile number"); return(View("ContactPreferences", contactPreferencesVm)); } await SaveContactPreferences(contactPreferencesVm); await LogEvents(contactPreferencesVm); return(RedirectToAction("Index")); }