Пример #1
0
        private List<SelectListItem> ConvertToSelect(object items, string valuefield, List<string> values = null)
        {
            var codeValueItems = items as IEnumerable<CodeValueItem>;
            if (codeValueItems == null)
                return new List<SelectListItem>();

            var codeValueList = codeValueItems.ToList();

            List<SelectListItem> list2;
            if (values == null)
                values = CodeValues?.ToList() ?? new List<string>();

            switch (valuefield)
            {
                case "IdCode":
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.IdCode, Selected = values.Contains(c.IdCode) }).ToList();
                    break;
                case "IdValue":
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.IdValue, Selected = values.Any(vv => vv.StartsWith($"{c.Id},") || vv == $"{c.Id}") }).ToList();
                    break;
                case "Id":
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.Id.ToString(), Selected = values.Contains(c.Id.ToString()) }).ToList();
                    break;
                case "CodeValue":
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.CodeValue, Selected = values.Any(vv => vv.StartsWith($"{c.Code}:") || vv == c.Code)}).ToList();
                    break;
                case "Code":
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.Code, Selected = values.Contains(c.Code) }).ToList();
                    break;
                default:
                    list2 = codeValueList.Select(c => new SelectListItem { Text = c.Value, Value = c.Value, Selected = values.Contains(c.Value) }).ToList();
                    break;
            }
            return list2;
        }
Пример #2
0
        public List <SelectListItem> ConvertToSelect(object items, string valuefield)
        {
            var list = items as IEnumerable <CodeValueItem>;
            List <SelectListItem> list2;
            List <string>         values;

            if (CodeValues != null)
            {
                values = CodeValues.ToList();
            }
            else if (CodeValue != null)
            {
                values = new List <string> {
                    CodeValue
                }
            }
            ;
            else
            {
                values = new List <string>();
            }
            switch (valuefield)
            {
            case "IdCode":
                list2 = list.Select(c => new SelectListItem {
                    Text = c.Value, Value = c.IdCode, Selected = values.Contains(c.IdCode)
                }).ToList();
                break;

            case "Id":
                list2 = list.Select(c => new SelectListItem {
                    Text = c.Value, Value = c.Id.ToString(), Selected = values.Contains(c.Id.ToString())
                }).ToList();
                break;

            case "Code":
                list2 = list.Select(c => new SelectListItem {
                    Text = c.Value, Value = c.Code, Selected = values.Contains(c.Code)
                }).ToList();
                break;

            default:
                list2 = list.Select(c => new SelectListItem {
                    Text = c.Value, Value = c.Value, Selected = values.Contains(c.Value)
                }).ToList();
                break;
            }
            return(list2);
        }