public override void ViewDidLoad() { base.ViewDidLoad(); Title = StringResources.consent_gabber_toolbar_title; int SelectedProjectID = Convert.ToInt32(NSUserDefaults.StandardUserDefaults.IntForKey("SelectedProjectID")); var SelectedProject = Queries.ProjectById(SelectedProjectID); var content = LanguageChoiceManager.ContentByLanguage(SelectedProject); ConversationDecisionDes.Text = string.Format(StringResources.consent_gabber_body_decision, Config.PRINT_URL); ChooseLanguageTitle.Text = StringResources.conversation_language_prompt; List <User> participants = Queries.SelectedParticipants().ToList(); string inConversation = StringResources.consent_gabber_consent_type_private_full_you; for (int i = 0; i < participants.Count; i++) { User p = participants[i]; if (p.Id == Session.ActiveUser.Id) { continue; } inConversation += ", " + p.Name; } int inProject = SelectedProject.Members.Count; var membersContent = string.Format( StringResources.consent_gabber_consent_type_members_full, inProject, (inProject > 1) ? StringResources.consent_gabber_consent_type_members_full_plural : StringResources.consent_gabber_consent_type_members_full_singular); var privateContent = string.Format(StringResources.consent_gabber_consent_type_private_full, inConversation); var items = new List <Consent> { new Consent { Title = StringResources.consent_gabber_consent_type_public_brief, Subtitle = StringResources.consent_gabber_consent_type_public_full }, new Consent { Title = string.Format(StringResources.consent_gabber_consent_type_members_brief, content.Title), Subtitle = membersContent }, new Consent { Title = StringResources.consent_gabber_consent_type_private_brief, Subtitle = privateContent } }; // Only show members if the project is private if (SelectedProject.IsPublic) { items.RemoveAt(1); } var consentVSource = new ConsentViewSource(items); consentVSource.ConsentSelected += (int selectedIndex) => { var consentOptions = new string[] { "public", "members", "private" }; ConsentType = consentOptions[selectedIndex]; CheckSubmitEnabled(); }; ConversationConsentTableView.Source = consentVSource; ConversationConsentTableView.RowHeight = UITableView.AutomaticDimension; ConversationConsentTableView.EstimatedRowHeight = 86f; ConversationConsentSubmit.SetTitle(StringResources.consent_gabber_submit, UIControlState.Normal); ConversationConsentSubmit.Layer.BorderWidth = 1.0f; ConversationConsentSubmit.Layer.BorderColor = Application.MainColour; ConversationConsentSubmit.Enabled = false; ConversationConsentSubmit.TouchUpInside += delegate { NSUserDefaults.StandardUserDefaults.SetString(ConsentType, "SESSION_CONSENT"); NSUserDefaults.StandardUserDefaults.SetInt(pickerModel.GetChoice(LanguagePicker).Id, "SESSION_LANG"); }; LoadLanguages(); }
async partial void Register(UIButton sender) { var fname = FullNameRegisterTextField.Text; var email = EmailRegisterTextField.Text; var passw = PasswordRegisterTextField.Text; // TODO: Should refactor validation to a helper class as this is shared with LoginVC if (string.IsNullOrWhiteSpace(fname)) { ErrorMessageDialog(StringResources.register_ui_fullname_validate_empty); } else if (string.IsNullOrWhiteSpace(email)) { ErrorMessageDialog(StringResources.common_ui_forms_email_validate_empty); } else if (string.IsNullOrWhiteSpace(passw)) { ErrorMessageDialog(StringResources.common_ui_forms_password_validate_empty); } else if (!Regex.Match(email, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$").Success) { ErrorMessageDialog(StringResources.common_ui_forms_email_validate_invalid); } else if (PasswordRegisterTextField.Text != ConfirmPasswordTextField.Text) { ErrorMessageDialog(StringResources.common_ui_forms_password_validate_mismatch); } else if (pickerModel.GetChoice(LanguagePicker) == null) { ErrorMessageDialog(StringResources.common_ui_forms_language_error); } else { ConfirmPasswordTextField.BecomeFirstResponder(); ConfirmPasswordTextField.ResignFirstResponder(); RegisterUIButton.Enabled = false; Logger.LOG_EVENT_WITH_ACTION("REGISTER", "ATTEMPT"); LoadingOverlay.Alpha = 1; var response = await RestClient.Register(fname, email, passw, pickerModel.GetChoice(LanguagePicker).Id); RegisterUIButton.Enabled = true; LoadingOverlay.Alpha = 0; if (response.Meta.Success) { Logger.LOG_EVENT_WITH_ACTION("REGISTER", "SUCCESS"); NSUserDefaults.StandardUserDefaults.SetString(email, "username"); PerformSegue("ShowVerifySegue", this); } else if (response.Meta.Messages.Count > 0) { Logger.LOG_EVENT_WITH_ACTION("REGISTER", "ERROR"); // Note: errors returned by register are the same as logjn, hence using that for lookup. var err = StringResources.ResourceManager.GetString($"login.api.error.{response.Meta.Messages[0]}"); ErrorMessageDialog(err); } } }