public void PopulateDropDownLists( IEnumerable <Document> documents, IEnumerable <Classification> classifications, IEnumerable <Keyword> keywords) { AvailableDocuments.AddRange(documents .OrderBy(d => d.Id) .Select(d => new SelectListItem { Value = d.Id.ToString(), Text = d.CatalogCode + " - " + d.Title, Selected = d.Id == Image.DocumentId })); AvailableKeywords.AddRange(keywords .OrderBy(k => k.Id) .ToList() .Select(k => new TranslatedViewModel <Keyword, KeywordTranslation>(k)) .Select(k => new SelectListItem { Value = k.Entity.Id.ToString(), Text = k.Translation.Value, Selected = KeywordIds.Contains(k.Entity.Id) })); AvailableClassifications.AddRange(classifications .OrderBy(c => c.Id) .ToList() .Select(c => new TranslatedViewModel <Classification, ClassificationTranslation>(c)) .Select(c => new SelectListItem { Value = c.Entity.Id.ToString(), Text = c.Translation.Value, Selected = Image.ClassificationId == c.Entity.Id })); }