public override VmPrintableFormOutput TranslateEntityToVm(ServiceChannelVersioned entity)
        {
            var definition = CreateEntityViewModelDefinition(entity)
                             .AddNavigation(i => i.PrintableFormChannels.FirstOrDefault()?.DeliveryAddress, o => o.DeliveryAddress)
                             .AddDictionary(
                input => input.PrintableFormChannels.FirstOrDefault()?.FormIdentifiers.Select(x => x),
                output => output.FormIdentifier,
                k => languageCache.GetByValue(k.LocalizationId)
                )
                             .AddDictionary(
                input => input.PrintableFormChannels.FirstOrDefault()?.FormReceivers.Select(x => x),
                output => output.FormReceiver,
                k => languageCache.GetByValue(k.LocalizationId)
                )
                             .AddDictionaryList(
                input => input.PrintableFormChannels.FirstOrDefault()?.ChannelUrls,
                output => output.FormFiles,
                k => languageCache.GetByValue(k.LocalizationId)
                );

            definitionHelper
            .AddAttachmentsDefinition(definition, entity)
            .AddChannelBaseDefinition(definition);
            return(definition.GetFinal());
        }
        public override VmOrganizationListItem TranslateEntityToVm(OrganizationVersioned entity)
        {
            var definition = CreateEntityViewModelDefinition <VmOrganizationListItem>(entity)
                             .AddLocalizable(i => i.OrganizationNames.Where(name => name.TypeId == i.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId), o => o.Name)
                             .AddNavigation(i =>
            {
                var childrenNamesAll = i.UnificRoot.Children.Select(child =>
                                                                    child.OrganizationNames.FirstOrDefault(
                                                                        k => k.TypeId == child.OrganizationDisplayNameTypes.FirstOrDefault(
                                                                            type => type.LocalizationId == k.LocalizationId
                                                                            )?.DisplayNameTypeId
                                                                        )?.Name ?? child.OrganizationNames.First(k => k.LocalizationId == RequestLanguageId).Name
                                                                    );
                var result = childrenNamesAll.Any() ? childrenNamesAll.Aggregate((o1, o2) => o1 + ", " + o2) : string.Empty;
                return(result);
            }
                                            , o => o.SubOrganizations)
                             .AddNavigation(i => GetParentName(i), o => o.MainOrganization)
                             .AddSimple(i => i.Modified, o => o.Modified)
                             .AddSimple(i => i.UnificRootId, o => o.UnificRootId)
                             .AddSimple(i => i.PublishingStatusId, o => o.PublishingStatusId)
                             .AddNavigation(i => i.Versioning, o => o.Version)
                             .AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(i => i.LanguageAvailabilities.OrderBy(x => x.Language.OrderNumber), o => o.LanguagesAvailabilities);
            var model = definition.GetFinal();

            if (!model.Name.Any())
            {
                definition.AddDictionary(i => i.OrganizationNames, o => o.Name, k => languageCache.GetByValue(k.LocalizationId));
            }
            return(model);
        }
Example #3
0
 public override JsonLanguageLabel TranslateEntityToVm(StatutoryServiceRequirement entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(input => input.Requirement, output => output.Label)
            .AddNavigation(input => languageCache.GetByValue(input.LocalizationId), output => output.Lang)
            .GetFinal());
 }
Example #4
0
 public override VmOpenApiLanguageItem TranslateEntityToVm(Email entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(i => string.IsNullOrEmpty(i.Value) ? null : i.Value, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .GetFinal());
 }
 public override IVmOpenApiLanguageItem TranslateEntityToVm(ServiceElectronicCommunicationChannel entity)
 {
     return(CreateEntityViewModelDefinition <VmOpenApiLanguageItem>(entity)
            .AddNavigation(i => i.ElectronicCommunicationChannel, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .GetFinal());
 }
 public override VmOpenApiNameTypeByLanguage TranslateEntityToVm(OrganizationDisplayNameType entity)
 {
     return(CreateEntityViewModelDefinition <VmOpenApiNameTypeByLanguage>(entity)
            .AddNavigation(i => typesCache.GetByValue <NameType>(i.DisplayNameTypeId), o => o.Type)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .GetFinal());
 }
Example #7
0
 public override VmOpenApiLanguageItem TranslateEntityToVm(PrintableFormChannelReceiver entity)
 {
     return(CreateEntityViewModelDefinition <VmOpenApiLanguageItem>(entity)
            .AddNavigation(i => string.IsNullOrEmpty(i.FormReceiver) ? null : i.FormReceiver, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .GetFinal());
 }
        protected ITranslationDefinitions <ServiceChannelVersioned, TVmOpenApiServiceChannel> CreateChannelDefinitions(ServiceChannelVersioned entity)
        {
            var commonForAllId = typesCache.Get <ServiceChannelConnectionType>(ServiceChannelConnectionTypeEnum.CommonForAll.ToString());

            return(CreateEntityViewModelDefinition(entity)
                   // We have to use unique root id as id!
                   .AddSimple(i => i.UnificRootId, o => o.Id)
                   .AddCollection(i => i.ServiceChannelNames, o => o.ServiceChannelNames)
                   .AddNavigation(i => typesCache.GetByValue <ServiceChannelType>(i.TypeId), o => o.ServiceChannelType)
                   .AddCollection(i => i.ServiceChannelDescriptions, o => o.ServiceChannelDescriptions)
                   .AddCollection(i => i.Languages.OrderBy(j => j.Order).ToList().Select(j => j.Language.Code).ToList(), o => o.Languages)
                   .AddCollection(i => i.WebPages, o => o.WebPages)
                   .AddCollection(i => i.ServiceChannelServiceHours.Select(x => x.ServiceHours).ToList().OrderBy(x => x.OrderNumber), o => o.ServiceHours)
                   // For support phones we only match items with type Phone.
                   .AddCollection(i => i.Phones.Where(p => p.Phone.TypeId == typesCache.Get <PhoneNumberType>(PhoneNumberTypeEnum.Phone.ToString())).Select(p => p.Phone).OrderBy(p => p.OrderNumber).ToList(), o => o.SupportPhones)
                   .AddCollection(i => i.Emails.Select(e => e.Email).OrderBy(e => e.OrderNumber), o => o.SupportEmails)
                   .AddNavigation(i => typesCache.GetByValue <PublishingStatusType>(i.PublishingStatusId), o => o.PublishingStatus)
                   .AddSimple(i => i.ConnectionTypeId == commonForAllId ? true : false, o => o.IsVisibleForAll)
                   .AddCollection(i => i.LanguageAvailabilities.Select(l => languageCache.GetByValue(l.LanguageId)).ToList(), o => o.AvailableLanguages)
                   .AddNavigation(i => i.AreaInformationTypeId.IsAssigned() ? typesCache.GetByValue <AreaInformationType>(i.AreaInformationTypeId.Value) : null, o => o.AreaType)
                   .AddCollection(i => i.AreaMunicipalities.Select(m => m.Municipality), o => o.AreaMunicipalities)
                   .AddCollection(i => i.Areas.Select(a => a.Area), o => o.Areas)
                   .AddCollection(i => i.UnificRoot?.ServiceServiceChannels, o => o.Services)
                   .AddSimple(i => i.Modified, o => o.Modified));
        }
 public override JsonLanguageLabel TranslateEntityToVm(LawWebPage entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(input => languageCache.GetByValue(input.WebPage.LocalizationId), output => output.Lang)
            .AddNavigation(input => input.WebPage.Url, output => output.Label)
            .GetFinal());
 }
 protected ITranslationDefinitions <Attachment, TVmOpenApiAttachment> CreateBaseDefinitions(Attachment entity)
 {
     return(CreateEntityViewModelDefinition <TVmOpenApiAttachment>(entity)
            .AddNavigation(i => i.Name, o => o.Name)
            .AddNavigation(i => i.Description, o => o.Description)
            .AddNavigation(i => i.Url, o => o.Url)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language));
 }
Example #11
0
 public override VmKeywordItem TranslateEntityToVm(Keyword entity)
 {
     return(CreateEntityViewModelDefinition <VmKeywordItem>(entity)
            .AddNavigation(i => i.Name, o => o.Name)
            .AddSimple(i => i.Id, o => o.Id)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.LocalizationCode)
            .GetFinal());
 }
Example #12
0
 protected ITranslationDefinitions <WebPage, TModel> CreateBaseEntityVmDefinitions(WebPage entity)
 {
     return(CreateEntityViewModelDefinition <TModel>(entity)
            .AddSimple(i => i.Id, o => o.Id)
            .AddNavigation(i => i.Name, o => o.Value)
            .AddNavigation(i => i.Url, o => o.Url)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language));
 }
 public override VmJsonTypeName TranslateEntityToVm(INameReference entity)
 {
     return(CreateEntityViewModelDefinition <VmJsonTypeName>(entity)
            .AddNavigation(input => input.Name, output => output.Name)
            .AddSimple(input => input.ReferenceId, output => output.TypeId)
            .AddNavigation(input => languageCache.GetByValue(input.LocalizationId), output => output.Language)
            .GetFinal());
 }
Example #14
0
 public override VmOpenApiLocalizedListItem TranslateEntityToVm(PrintableFormChannelUrl entity)
 {
     return(CreateEntityViewModelDefinition <VmOpenApiLocalizedListItem>(entity)
            .AddNavigation(i => typesCache.GetByValue <PrintableFormChannelUrlType>(i.TypeId), o => o.Type)
            .AddNavigation(i => i.Url, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .GetFinal());
 }
Example #15
0
 public override VmLaw TranslateEntityToVm(Law entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddSimple(i => i.Id, o => o.Id)
            .AddDictionary(i => i.WebPages.Select(x => x.WebPage).GroupBy(x => x.LocalizationId).Select(x => x.OrderByDescending(y => y.Modified).First()), o => o.UrlAddress, web => languageCache.GetByValue(web.LocalizationId))
            .AddDictionary(i => i.Names, o => o.Name, name => languageCache.GetByValue(name.LocalizationId))
            .GetFinal());
 }
Example #16
0
 public override VmOpenApiLocalizedListItem TranslateEntityToVm(TEntity entity)
 {
     return(CreateEntityViewModelDefinition <VmOpenApiLocalizedListItem>(entity)
            .AddNavigation(i => string.IsNullOrEmpty(i.Name) ? null : i.Name, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .AddNavigation(i => typesCache.GetByValue <NameType>(i.TypeId), o => o.Type)
            .GetFinal());
 }
Example #17
0
 public override V4VmOpenApiEmail TranslateEntityToVm(Email entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(i => i.Description, o => o.Value)
            .AddNavigation(i => i.Value, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .AddSimple(i => i.OrderNumber, o => o.OrderNumber)
            .GetFinal());
 }
Example #18
0
        public override VmOpenApiLanguageItem TranslateEntityToVm(TEntity entity)
        {
            var description = convertToMarkDown ? textManager.ConvertToMarkDown(entity.Description) : entity.Description;

            return(CreateEntityViewModelDefinition <VmOpenApiLanguageItem>(entity)
                   .AddNavigation(i => string.IsNullOrEmpty(description) ? null : description, o => o.Value)
                   .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
                   .GetFinal());
        }
        public override VmOpenApiLanguageItem TranslateEntityToVm(StatutoryServiceRequirement entity)
        {
            var requirement = textManager.ConvertToMarkDown(entity.Requirement);

            return(CreateEntityViewModelDefinition(entity)
                   .AddNavigation(i => string.IsNullOrEmpty(requirement) ? null : requirement, o => o.Value)
                   .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
                   .GetFinal());
        }
Example #20
0
 public override VmOpenApiLanguageItem TranslateEntityToVm(ServiceChannelEmail entity)
 {
     if (entity == null || entity.Email == null)
     {
         return(null);
     }
     return(CreateEntityViewModelDefinition <VmOpenApiLanguageItem>(entity)
            .AddNavigation(i => string.IsNullOrEmpty(i.Email.Value) ? null : i.Email.Value, o => o.Value)
            .AddNavigation(i => languageCache.GetByValue(i.Email.LocalizationId), o => o.Language)
            .GetFinal());
 }
Example #21
0
 public override VmAddressSimple TranslateEntityToVm(AddressForeign entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            //.AddLocalizable(input => input.ForeignTextNames, output => output.Street)
            .AddDictionary(
                i => i.ForeignTextNames,
                o => o.ForeignAddressText,
                k => languageCache.GetByValue(k.LocalizationId)
                )
            .GetFinal());
 }
        public override VmServiceLocationChannel TranslateEntityToVm(ServiceChannelVersioned entity)
        {
            var definition = CreateEntityViewModelDefinition(entity)
                             .AddPartial(input => input.ServiceLocationChannels?.FirstOrDefault(), output => output);

            definitionHelper
            .AddLanguagesDefinition(definition)
            .AddChannelBaseDefinition(definition)
            .AddOpeningHoursDefinition(definition);
            definition
            .AddDictionaryList(i =>
                               i.Phones.Select(x => x.Phone).Where(x => typesCache.Compare <PhoneNumberType>(x.TypeId, PhoneNumberTypeEnum.Phone.ToString())).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created),
                               o => o.PhoneNumbers,
                               x => languageCache.GetByValue(x.LocalizationId))
            .AddDictionaryList(
                i => i.Phones.Select(x => x.Phone).Where(x => typesCache.Compare <PhoneNumberType>(x.TypeId, PhoneNumberTypeEnum.Fax.ToString())).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created),
                o => o.FaxNumbers,
                x => languageCache.GetByValue(x.LocalizationId));
            definition.AddDictionaryList(i => i.WebPages.OrderBy(x => x.WebPage.OrderNumber).ThenBy(x => x.WebPage.Created), o => o.WebPages, key => languageCache.GetByValue(key.WebPage.LocalizationId));
            return(definition.GetFinal());
        }
Example #23
0
 protected ITranslationDefinitions <Phone, TModel> CreateEntityVmBaseDefinitions(Phone entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(i => i.Number, o => o.Number)
            .AddNavigation(i => i.PrefixNumber?.Code, o => o.PrefixNumber)
            .AddNavigation(i => i.AdditionalInformation, o => o.AdditionalInformation)
            .AddNavigation(i => i.ChargeDescription, o => o.ChargeDescription)
            .AddNavigation(i => typesCache.GetByValue <ServiceChargeType>(i.ChargeTypeId), o => o.ServiceChargeType)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .AddSimple(i => string.IsNullOrEmpty(i.PrefixNumber?.Code) ? true : false, o => o.IsFinnishServiceNumber)
            .AddSimple(i => i.OrderNumber, o => o.OrderNumber));
 }
 public override VmPrintableFormChannelStep1 TranslateEntityToVm(PrintableFormChannel entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddDictionary(
                i => i.FormIdentifiers,
                o => o.FormIdentifier,
                k => languageCache.GetByValue(k.LocalizationId)
                )
            .AddDictionary(
                i => i.FormReceivers,
                o => o.FormReceiver,
                k => languageCache.GetByValue(k.LocalizationId)
                )
            .AddNavigation(i => i.DeliveryAddress ?? new Address(), o => o.DeliveryAddress)
            .AddCollection(input => languageCache.FilterCollection(input.ChannelUrls, RequestLanguageCode), output => output.WebPages)
            //.AddLocalizable(i => i.FormIdentifiers, o => o.FormIdentifier)
            //.AddLocalizable(i => i.FormReceivers, o => o.FormReceiver)
            .AddNavigation(i => i.DeliveryAddress, o => o.DeliveryAddress)
            .AddCollection(input => languageCache.FilterCollection(input.ChannelUrls, RequestLanguageCode), output => output.WebPages)
            .GetFinal());
 }
Example #25
0
        public override VmEntityNames TranslateEntityToVm(ServiceChannelVersioned entity)
        {
            var model = CreateEntityViewModelDefinition(entity)
                        .AddSimple(i => i.Id, o => o.Id)
                        .AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(i => i.LanguageAvailabilities, o => o.LanguagesAvailabilities).GetFinal();

            model.Names =
                entity.ServiceChannelNames.Where(
                    x => x.TypeId == typesCache.Get <NameType>(NameTypeEnum.Name.ToString()) &&
                    entity.LanguageAvailabilities.Select(y => y.LanguageId).Contains(x.LocalizationId))
                .ToDictionary(x => languageCache.GetByValue(x.LocalizationId), x => x.Name);
            return(model);
        }
Example #26
0
 public override TModel TranslateEntityToVm(Phone entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddNavigation(i => typesCache.GetByValue <PhoneNumberType>(i.TypeId), o => o.Type)
            .AddNavigation(i => i.AdditionalInformation, o => o.AdditionalInformation)
            .AddNavigation(i => i.Number, o => o.Number)
            .AddNavigation(i => i.PrefixNumber?.Code, o => o.PrefixNumber)
            .AddNavigation(i => i.ChargeDescription, o => o.ChargeDescription)
            .AddNavigation(i => typesCache.GetByValue <ServiceChargeType>(i.ChargeTypeId), o => o.ServiceChargeType)
            .AddNavigation(i => languageCache.GetByValue(i.LocalizationId), o => o.Language)
            .AddSimple(i => string.IsNullOrEmpty(i.PrefixNumber?.Code) ? true : false, o => o.IsFinnishServiceNumber)
            .GetFinal());
 }
        public override VmServiceListItem TranslateEntityToVm(ServiceVersioned entity)
        {
            var definition = CreateEntityViewModelDefinition <VmServiceListItem>(entity)
                             .AddNavigation(i => VersioningManager.ApplyLanguageFilterFallback(i.ServiceNames.Where(k => k.TypeId == typesCache.Get <NameType>(NameTypeEnum.Name.ToString())), RequestLanguageId)?.Name ?? "N/A", o => o.Name)
                             .AddSimple(i => i.PublishingStatusId, o => o.PublishingStatusId)
                             .AddSimple(i => i.UnificRootId, o => o.UnificRootId)
                             .AddSimple(i => i.TypeId ?? VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions).TypeId, o => o.ServiceTypeId)
                             .AddNavigation(
                i =>
                typesCache.GetByValue <ServiceType>(i.TypeId ?? VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions).TypeId),
                o => o.ServiceType)
                             .AddCollection(i =>
                                            (VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions) != null
                            ? i.ServiceOntologyTerms.Select(x => x.OntologyTerm)
                                             .Union(
                                                 VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions).OntologyTerms.Select(x => x.OntologyTerm))
                            : i.ServiceOntologyTerms.Select(x => x.OntologyTerm)).Cast <IFintoItemBase>()
                                            , o => o.OntologyTerms)
                             .AddSimple(i => i.Modified, o => o.Modified)
                             .AddSimpleList(i =>
                                            VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions) != null
                            ? i.ServiceServiceClasses.Select(s => s.ServiceClassId)
                                            .Union(
                                                VersioningManager.ApplyPublishingStatusFilterFallback(i.StatutoryServiceGeneralDescription?.Versions)
                                                .ServiceClasses.Select(s => s.ServiceClassId))
                            : i.ServiceServiceClasses.Select(s => s.ServiceClassId)
                                            , o => o.ServiceClasses)
                             .AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(i => i.LanguageAvailabilities.OrderBy(x => x.Language.OrderNumber), o => o.LanguagesAvailabilities)
                             .AddNavigation(i => i.Versioning, o => o.Version)
                             .AddSimpleList(i => i.OrganizationServices.Select(x => x.OrganizationId).Union(new List <Guid> {
                i.OrganizationId
            }), o => o.Organizations)
                             .AddSimpleList(i => i.ServiceProducers.Select(x => x.Id), o => o.Producers);

            if (entity.UnificRoot != null)
            {
                definition.AddSimple(i => i.UnificRoot.ServiceServiceChannels.Count(
                                         x => x.ServiceChannel.Versions.Any(j => j.PublishingStatusId == typesCache.Get <PublishingStatusType>(PublishingStatus.Published.ToString()) ||
                                                                            j.PublishingStatusId == typesCache.Get <PublishingStatusType>(PublishingStatus.Draft.ToString()))),
                                     o => o.ConnectedChannelsCount);
            }

            var model = definition.GetFinal();

            if (!model.Name.Any())
            {
                definition.AddDictionary(i => i.ServiceNames, o => o.Name, k => languageCache.GetByValue(k.LocalizationId));
            }

            return(model);
        }
        public override VmPrintableFormOutput TranslateEntityToVm(PrintableFormChannel entity)
        {
            var result = CreateEntityViewModelDefinition(entity)
                         .AddDictionary(
                i => i.FormIdentifiers,
                o => o.FormIdentifier,
                k => languageCache.GetByValue(k.LocalizationId)
                )
                         .AddDictionary(
                i => i.FormReceivers,
                o => o.FormReceiver,
                k => languageCache.GetByValue(k.LocalizationId)
                )
                         .AddNavigation(i => i.DeliveryAddress ?? new Address(), o => o.DeliveryAddress)
                         .AddDictionaryList(
                input => languageCache.FilterCollection(input.ChannelUrls, RequestLanguageCode).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created),
                output => output.FormFiles,
                k => languageCache.GetByValue(k.LocalizationId)
                )
                         .GetFinal();

            return(result);
        }
Example #29
0
 public override VmAddressSimple TranslateEntityToVm(AddressPostOfficeBox entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            //.AddPartial(i => i, o => o as VmAddressSimpleBase)
            .AddSimple(input => input.MunicipalityId, output => output.Municipality)
            .AddNavigation(input => input.PostalCode != null && input.PostalCode.Code != "Undefined" ? input.PostalCode : null, output => output.PostalCode)
            //.AddLocalizable(input => input.PostOfficeBoxNames, output => output.PoBox)
            .AddDictionary(
                i => i.PostOfficeBoxNames,
                o => o.PoBox,
                k => languageCache.GetByValue(k.LocalizationId)
                )
            .GetFinal());
 }
Example #30
0
 protected ITranslationDefinitions <OrganizationVersioned, TVmOpenApiOrganization> CreateBaseEntityVmDefinitions(OrganizationVersioned entity)
 {
     return(CreateEntityViewModelDefinition <TVmOpenApiOrganization>(entity)
            .AddNavigation(i => i.Oid, o => o.Oid)
            .AddNavigation(i => i.Business?.Code, o => o.BusinessCode)
            .AddNavigation(i => i.Business?.Name, o => o.BusinessName)
            .AddNavigation(i => i.TypeId.HasValue ? typesCache.GetByValue <OrganizationType>(i.TypeId.Value) : null, o => o.OrganizationType)
            .AddCollection(i => i.OrganizationNames, o => o.OrganizationNames)
            .AddCollection(i => i.OrganizationWebAddress, o => o.WebPages)
            .AddNavigation(i => typesCache.GetByValue <PublishingStatusType>(i.PublishingStatusId), o => o.PublishingStatus)
            .AddCollection(i => i.OrganizationDisplayNameTypes, o => o.DisplayNameType)
            .AddCollection(i => i.LanguageAvailabilities.Select(l => languageCache.GetByValue(l.LanguageId)).ToList(), o => o.AvailableLanguages)
            .AddNavigation(i => typesCache.GetByValue <AreaInformationType>(i.AreaInformationTypeId), o => o.AreaType));
 }