Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }