public override PickerEntity ValidateEntity(PickerEntity needsValidation) { PickerEntity entity = needsValidation; if (!string.IsNullOrEmpty(needsValidation.DisplayText)) { using (SPWeb web = SPControl.GetContextWeb(Context)) { FieldLookupWithPickerPropertyBag propertyBag = new FieldLookupWithPickerPropertyBag(this.CustomProperty); SPList list = web.Lists[propertyBag.ListId]; SPQuery queryById = new SPQuery(); queryById.Query = string.Format("<Where><Eq><FieldRef Name=\"ID\"/><Value Type=\"Integer\">{0}</Value></Eq></Where>", needsValidation.Key); SPListItemCollection items = list.GetItems(queryById); if (items.Count > 0) { entity = this.GetEntity(items[0]); } else { SPQuery queryByTitle = new SPQuery(); queryByTitle.Query = string.Format("<Where><Eq><FieldRef Name=\"{0}\"/><Value Type=\"Text\">{1}</Value></Eq></Where>", propertyBag.FieldId, needsValidation.DisplayText); items = list.GetItems(queryByTitle); if (items.Count > 0) { entity = this.GetEntity(items[0]); } } } } return(entity); }
private PickerEntity GetEntity(SPListItem item) { FieldLookupWithPickerPropertyBag propertyBag = new FieldLookupWithPickerPropertyBag(this.CustomProperty); PickerEntity entity = new PickerEntity(); entity.DisplayText = item[propertyBag.FieldId].ToString(); entity.Key = item.ID.ToString(); entity.Description = entity.DisplayText; entity.IsResolved = true; return(entity); }