public void GetValuesFromText_WhenSingleValueIncludesDelimiters_ReturnsListOfOne()
        {
            var list = FieldInstance.GetMultipleValuesFromText(" ; ;Ford ; ;;").ToList();

            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list.Contains("Ford"));
        }
Exemple #2
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// We get this message from the person informant when a person's UI ID has changed.
        /// When that happens, we just need to update the Text in the participant control. No
        /// change is needed (or desirable) in the underlying metadata.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void HandlePersonsUiIdChanged(object sender, ElementIdChangedArgs e)
        {
            var allParticipants = FieldInstance.GetMultipleValuesFromText(_participants.Text);
            var newNames        = allParticipants.Select(name => (name == e.OldId ? e.NewId : name));

            _participants.Text = FieldInstance.GetTextFromMultipleValues(newNames);
        }
Exemple #3
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Replace comma with correct delimiter in MultiValueDropDownBox. Translate full names
        /// of persons into strings acceptable to show in UI (use "code" instead of Full Name
        /// when available).
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void HandleBinderTranslateBoundValueBeingRetrieved(object sender,
                                                                   TranslateBoundValueBeingRetrievedArgs args)
        {
            if (!(args.BoundControl is MultiValueDropDownBox))
            {
                return;
            }

            if (args.ValueFromFile.Contains(","))
            {
                args.TranslatedValue = args.ValueFromFile.Replace(",", FieldInstance.kDefaultMultiValueDelimiter.ToString(CultureInfo.InvariantCulture));
            }

            if (args.BoundControl == _participants)
            {
                var val = args.TranslatedValue ?? args.ValueFromFile;
                if (!string.IsNullOrEmpty(val))
                {
                    var participantNames = FieldInstance.GetMultipleValuesFromText(val).ToArray();
                    for (int index = 0; index < participantNames.Length; index++)
                    {
                        participantNames[index] = _personInformant.GetUiIdByName(participantNames[index]);
                    }

                    args.TranslatedValue = FieldInstance.GetTextFromMultipleValues(participantNames);
                }
            }
        }
        public void GetValuesFromText_WhenMultipleValues_ReturnsThem()
        {
            var list = FieldInstance.GetMultipleValuesFromText("Ford ; ;Chevy ; Pontiac;;").ToList();

            Assert.AreEqual(3, list.Count);
            Assert.IsTrue(list.Contains("Ford"));
            Assert.IsTrue(list.Contains("Chevy"));
            Assert.IsTrue(list.Contains("Pontiac"));
        }
Exemple #5
0
        /// ------------------------------------------------------------------------------------
        private bool GetShouldReportHaveConsent()
        {
            var  allParticipants            = MetaDataFile.GetStringValue(SessionFileType.kParticipantsFieldName, string.Empty);
            var  personNames                = FieldInstance.GetMultipleValuesFromText(allParticipants).ToArray();
            bool allParticipantsHaveConsent = personNames.Length > 0;

            return(personNames.All(name => _personInformant.GetHasInformedConsent(name)) &&
                   allParticipantsHaveConsent);
        }
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Sets the checked items from the specified string delimited by the default
        /// delimiter character. All other items in the list are made unchecked.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public void SetCheckedItemsFromDelimitedString(string items)
        {
            foreach (var item in _items)
            {
                item.Checked = false;
            }

            foreach (var text in FieldInstance.GetMultipleValuesFromText(items))
            {
                CheckItem(text);
            }
        }
Exemple #7
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// When the binding helper gets to writing field values to the metadata file, we need
        /// to make sure the English values for male and female are written to the file, not
        /// the localized values for male and female (which is what is in the gender combo box).
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void HandleBinderTranslateBoundValueBeingSaved(object sender,
                                                               TranslateBoundValueBeingSavedArgs args)
        {
            if (args.BoundControl == _participants)
            {
                var participantNames = FieldInstance.GetMultipleValuesFromText(_participants.Text).ToArray();
                for (int index = 0; index < participantNames.Length; index++)
                {
                    var person = _personInformant.GetPersonByNameOrCode(participantNames[index]);
                    if (person != null)
                    {
                        participantNames[index] = person.Id;
                    }
                }

                args.NewValue = FieldInstance.GetTextFromMultipleValues(participantNames);
            }
        }
 public void GetValuesFromText_WhenValueIsNull_ReturnsEmptyList()
 {
     Assert.AreEqual(0, FieldInstance.GetMultipleValuesFromText(null).Count());
 }
 public void GetValuesFromText_WhenValueIsEmptyString_ReturnsEmptyList()
 {
     Assert.AreEqual(0, FieldInstance.GetMultipleValuesFromText(string.Empty).Count());
 }
Exemple #10
0
        /// ------------------------------------------------------------------------------------
        public virtual IEnumerable <string> GetAllParticipants()
        {
            var allParticipants = MetaDataFile.GetStringValue(SessionFileType.kParticipantsFieldName, string.Empty);

            return(FieldInstance.GetMultipleValuesFromText(allParticipants));
        }