/// <summary> /// Converts a <see cref="LikertScale"/> to a <see cref="ControlValueOptionList"/>. /// </summary> /// <param name="scale">The scale to convert.</param> /// <returns>A <see cref="ControlValueOptionList"/>.</returns> /// <remarks> /// Each <see cref="ControlValueOption"/> in the returned <see cref="ControlValueOptionList"/> /// represents a single <see cref="LikertScaleItem"/> question from the /// <paramref name="scale"/>. /// </remarks> internal static ControlValueOptionList ToOptionList(this LikertScale scale) { ControlValueOptionList optionList = new ControlValueOptionList(); optionList.AddRange(scale.Select(item => new ControlValueOption { Value = item.Value.ToString(), Description = item.Description })); return optionList; }
/// <summary> /// Get the options for <paramref name="source"/>. /// </summary> /// <param name="source">Defines the method for retrieving options.</param> /// <returns>The options for <paramref name="source"/>.</returns> public ControlValueOptionList GetOptions(IOptionSource source) { RepeaterOptionSource repeaterSource = source as RepeaterOptionSource; ControlValueOptionList list = new ControlValueOptionList(); object[] objectArr = this.applicationData.GetValue<object[]>(repeaterSource.RepeaterName); if (objectArr == null || objectArr.Length == 0) { return list; } Dictionary<string, object>[] repeaterItems = objectArr as Dictionary<string, object>[]; list.AddRange(repeaterItems.Select(item => new ControlValueOption { Value = string.Join(" ", repeaterSource.ValueFields.Select(key => item[key].ToString())), Description = string.Join(" ", repeaterSource.DescriptionFields.Select(key => item[key].ToString())), Category = string.IsNullOrEmpty(repeaterSource.CategoryField) ? string.Empty : item[repeaterSource.CategoryField].ToString() })); return list; }
/// <summary> /// Get the options for <paramref name="source"/>. /// </summary> /// <param name="source">Defines the method for retrieving options.</param> /// <returns>The options for <paramref name="source"/>.</returns> public ControlValueOptionList GetOptions(IOptionSource source) { PrebuiltOptionSource prebuiltSource = source as PrebuiltOptionSource; GenericDataSet dataSet = this.dataSetList[prebuiltSource.DataSetId]; ControlValueOptionList optionList = new ControlValueOptionList(); MappedField categoryMap = prebuiltSource.ResponseFieldMap.FirstOrDefault(m => m.Target == CATEGORY); string categoryKey = categoryMap != null ? categoryMap.Source : string.Empty; string descriptionKey = prebuiltSource.ResponseFieldMap.FirstOrDefault(m => m.Target == DESCRIPTION).Source; string valueKey = prebuiltSource.ResponseFieldMap.FirstOrDefault(m => m.Target == VALUE).Source; optionList.AddRange(dataSet.Data.Select(item => new ControlValueOption { Category = item.ContainsKey(categoryKey) ? item[categoryKey] : string.Empty, Description = item.ContainsKey(descriptionKey) ? item[descriptionKey] : string.Empty, Value = item.ContainsKey(valueKey) ? item[valueKey] : string.Empty })); return optionList; }
/// <summary> /// Get the options for <paramref name="source"/>. /// </summary> /// <param name="source">Defines the method for retrieving options.</param> /// <returns>The options for <paramref name="source"/>.</returns> public ControlValueOptionList GetOptions(IOptionSource source) { ControlValueOptionList optionList = new ControlValueOptionList(); SystemOptionSource systemSource = source as SystemOptionSource; UserSearchCriteria criteria = new UserSearchCriteria { IncludeServiceUsers = false, IncludeNoOrganisationUsers = false, OrganisationIds = new List<string> { this.organisationId } }; if (!string.IsNullOrWhiteSpace(systemSource.FilterRoleId)) { criteria.RoleIds = new List<string> { systemSource.FilterRoleId }; } IEnumerable<OptionSourceUser> usersWithRole = this.findUsersFn(criteria); MappedField categoryMap = systemSource.ResponseFieldMap.FirstOrDefault(m => m.Target == CATEGORY); string categoryKey = categoryMap != null ? categoryMap.Source : string.Empty; string descriptionKey = string.Empty; var description = systemSource.ResponseFieldMap.FirstOrDefault(m => m.Target == DESCRIPTION); if (description != null) { descriptionKey = description.Source; } string valueKey = string.Empty; var value = systemSource.ResponseFieldMap.FirstOrDefault(m => m.Target == VALUE); if (value != null) { valueKey = value.Source; } optionList.AddRange(usersWithRole.Select(item => new ControlValueOption { Category = !string.IsNullOrWhiteSpace(categoryKey) && item.GetType().GetProperty(categoryKey).GetValue(item) != null ? item.GetType().GetProperty(categoryKey).GetValue(item).ToString() : string.Empty, Description = !string.IsNullOrWhiteSpace(descriptionKey) && item.GetType().GetProperty(descriptionKey).GetValue(item) != null ? item.GetType().GetProperty(descriptionKey).GetValue(item).ToString() : string.Empty, Value = !string.IsNullOrWhiteSpace(valueKey) && item.GetType().GetProperty(valueKey).GetValue(item) != null ? item.GetType().GetProperty(valueKey).GetValue(item).ToString() : string.Empty })); return optionList; }