public InstanceResolverResult ResolvePossibleData(object baseObject, object data, PropertyInfo property) { LanguageInfo[] languageInfos = (LanguageInfo[])data; if (languageInfos == null) { languageInfos = new LanguageInfo[0]; } LanguageInfo[] editorLanguages = FortLanguage.ResolveLanguageEditorInfo() .Languages; LanguageInfo[] possibleLanguages = editorLanguages.Where(info => languageInfos.All(languageInfo => languageInfo.Id != info.Id)) .ToArray(); InstanceResolverResult result = new InstanceResolverResult { PossibleInstanceTokens = possibleLanguages.Select(language => new InstanceToken(language.Name, language)).ToArray(), PresentableInstanceTokens = languageInfos.Where(info => editorLanguages.Any(languageInfo => languageInfo.Id == info.Id)) .Select(info => new InstanceToken(info.Name, info)) .ToArray(), IsEditable = false, UseValueTypeForEdit = false }; return(result); }
public InstanceResolverResult ResolvePossibleData(object baseObject, object data, PropertyInfo property) { LanguageInfo[] editorLanguages = FortLanguage.ResolveLanguageEditorInfo().Languages; InstanceResolverResult result = new InstanceResolverResult { PossibleInstanceTokens = InfoResolver.Resolve <FortInfo>().Language.ActiveLanguages.Where( info => editorLanguages.Any(languageInfo => languageInfo.Id == info.Id)) .Select(info => new InstanceToken(info.Name, info)) .ToArray() }; InstanceToken instanceToken = result.PossibleInstanceTokens.FirstOrDefault(token => ReferenceEquals(token.Value, data)); result.PresentableInstanceTokens = instanceToken == null ? new InstanceToken[0] : new[] { instanceToken }; return(result); }