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; }
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); }