private string GetParentName(OrganizationVersioned organizationVersioned)
        {
            if (organizationVersioned?.Parent == null)
            {
                return(string.Empty);
            }
            var parentOrg = VersioningManager.ApplyPublishingStatusFilter(organizationVersioned?.Parent.Versions).FirstOrDefault();

            if (parentOrg == null)
            {
                return(string.Empty);
            }
            return(languageCache.Filter(parentOrg.OrganizationNames.Where(name => name.TypeId == parentOrg.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId), RequestLanguageCode)?.Name ?? string.Empty);
        }
        public ITranslationDefinitions <TIn, TOut> AddLocalizable <TInProperty, TOutProperty>(Func <TIn, IEnumerable <TInProperty> > fromProperty, Expression <Func <TOut, TOutProperty> > toProperty, TOutProperty defaultValueIfNotFound = null)
            where TInProperty : class, ILocalizable where TOutProperty : class
        {
            var targetPropertyType = typeof(TOutProperty);

            if (targetPropertyType.IsEnumerable(nonEnumerableTypes))
            {
                throw new Exception(string.Format(CoreMessages.UseAddCollectionInstead, typeof(TIn).Name, typeof(TOut).Name, typeof(TInProperty).Name, typeof(TOutProperty).Name));
            }
            if (sourceInstance == null)
            {
                return(this);
            }
            EnsureCreateTargetInstance();
            if (translationPrimitives.TranslatePrimitive(sourceInstance, ref targetInstance, fromProperty, toProperty))
            {
                return(this);
            }
            var fromPropertyInstance = languageCache.Filter(fromProperty(sourceInstance), requestlanguageId);

            targetInstance.SetPropertyValue(toProperty, fromPropertyInstance != default(TInProperty) ? CallTranslation <TInProperty, TOutProperty>(fromPropertyInstance) : defaultValueIfNotFound);
            return(this);
        }