示例#1
0
        public override VmListItem TranslateEntityToVm(OrganizationVersioned entity)
        {
            var psPublished = typesCache.Get <PublishingStatusType>(PublishingStatus.Published.ToString());

            var model = CreateEntityViewModelDefinition(entity)
                        .AddLocalizable(i => i.OrganizationNames.Where(name => name.TypeId == i.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId).Cast <IText>(), o => o.Name)
                        .AddSimple(i => i.UnificRootId, o => o.Id)
                        .AddNavigation(i => new OrganizationVersioned
            {
                Id = i.UnificRootId,
                OrganizationNames = i.OrganizationNames
                                    .Where(name => entity.LanguageAvailabilities.Any(x => x.LanguageId == name.LocalizationId && x.StatusId == psPublished) &&
                                           name.TypeId == i.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId).ToList()
            } as INameReferences,
                                       o => o.Translation)
                        .GetFinal();

            if (string.IsNullOrEmpty(model.Name))
            {
                model.Name =
                    entity.OrganizationNames.Where(name => name.TypeId == entity.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId)
                    .OrderBy(x => languageOrderCache.Get(x.LocalizationId))
                    .FirstOrDefault()?.Name;
            }
            return(model);
        }
示例#2
0
 private IEnumerable <IDescription> GetDescription(IDescriptionReferences entity)
 {
     if (entity != null)
     {
         return(entity.Descriptions.OrderBy(x => orderCache.Get(x.LocalizationId)));
     }
     return(new List <IDescription>());
 }
示例#3
0
        public override VmServiceSearchListItem TranslateEntityToVm(ServiceVersioned entity)
        {
            var languageId = entity.ServiceNames
                             .Select(x => x.LocalizationId)
                             .OrderBy(x => languageOrderCache.Get(x))
                             .First();

            SetLanguage(languageId);
            var serviceSearch = CreateEntityViewModelDefinition <VmServiceSearchListItem>(entity)
                                .AddPartial(i => i, o => o as VmServiceListItem)
                                .GetFinal();

            return(serviceSearch);
        }
示例#4
0
        public override VmGeneralDescriptionSearchListItem TranslateEntityToVm(StatutoryServiceGeneralDescriptionVersioned entity)
        {
            var languageId = entity.Names
                             .Select(x => x.LocalizationId)
                             .OrderBy(x => languageOrderCache.Get(x))
                             .First();

            SetLanguage(languageId);
            var generalDescription = CreateEntityViewModelDefinition <VmGeneralDescriptionSearchListItem>(entity)
                                     .AddPartial(i => i, o => o as VmGeneralDescriptionListItem)
                                     .GetFinal();

            return(generalDescription);
        }
示例#5
0
        public override IVmTranslatedItem TranslateEntityToVm(INameReferences entity)
        {
            var model = CreateEntityViewModelDefinition(entity)
                        .AddLocalizable(i => i.Names, o => o.DefaultTranslation)
                        .AddNavigation(i => i, o => o.Translation)
                        .GetFinal();
            var nameReference = entity as INameReferences;

            if (nameReference != null && string.IsNullOrEmpty(model.DefaultTranslation))
            {
                model.DefaultTranslation =
                    nameReference.Names
                    .OrderBy(x => orderCache.Get(x.LocalizationId))
                    .FirstOrDefault()?.Name;
            }
            return(model);
        }
示例#6
0
        public override VmTreeItem TranslateEntityToVm(OrganizationTreeItem entity)
        {
            var model = CreateEntityViewModelDefinition <VmTreeItem>(entity)
//                .AddLocalizable(i => i.Organization.OrganizationNames.Where(name => name.TypeId == i.Organization.DisplayNameTypeId).Cast<IText>(), o => o.Name)
                        .AddPartial(i => i.Organization, o => o as VmListItem)
                        .AddSimple(i => i.Organization.UnificRootId, o => o.Id)
                        .AddSimple(i => i.Children == null || i.Children.Count == 0, o => o.IsLeaf)
                        .GetFinal();

            if (string.IsNullOrEmpty(model.Name))
            {
                model.Name =
                    entity.Organization.OrganizationNames.Where(name => name.TypeId == entity.Organization.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == name.LocalizationId)?.DisplayNameTypeId)
                    .OrderBy(x => languageOrderCache.Get(x.LocalizationId))
                    .FirstOrDefault()?.Name;
            }
            return(model);
        }
 public ITranslationDefinitions <TIn, TOut> AddLanguageAvailabilitiesDefinition <TIn, TOut, TLanguagesAvailability>(ITranslationDefinitions <TIn, TOut> definition, ILanguageOrderCache orderCache) where TIn : IMultilanguagedEntity <TLanguagesAvailability> where TOut : ILanguagesAvailabilities where TLanguagesAvailability : LanguageAvailability
 {
     return(definition.AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(
                i => i.LanguageAvailabilities.OrderBy(x => orderCache.Get(x.LanguageId)),
                o => o.LanguagesAvailabilities));
 }
示例#8
0
 public override VmEntityHeaderBase TranslateEntityToVm(IBaseInformation entity)
 {
     return(CreateEntityViewModelDefinition(entity)
            .AddDictionary(input => GetName(input, NameTypeEnum.Name), output => output.Name, name => languageCache.GetByValue(name.LocalizationId))
            .AddNavigation(i => i.Versioning, o => o.Version)
            .AddCollection(i => i.LanguageAvailabilitiesReference.OrderBy(x => languageOrderCache.Get(x.LanguageId)), o => o.LanguagesAvailabilities)
            .AddSimple(i => i.Id, o => o.Id)
            .AddSimple(i => i.UnificRootId, o => o.UnificRootId)
            .AddSimple(i => i.PublishingStatusId, o => o.PublishingStatus).GetFinal());
 }
示例#9
0
        public override VmChannelListItem TranslateEntityToVm(ServiceChannelVersioned entity)
        {
            var definition = CreateEntityViewModelDefinition <VmChannelListItem>(entity)
                             .AddNavigation(i => VersioningManager.ApplyLanguageFilterFallback(i.ServiceChannelNames.Where(k => k.TypeId == typesCache.Get <NameType>(NameTypeEnum.Name.ToString())), RequestLanguageId)?.Name ?? "N/A", o => o.Name)
                             //.AddPartial(i => i.Type, o => o as IVmEntityType)
                             .AddSimple(i => EntityTypeEnum.Channel, o => o.MainEntityType)
                             .AddNavigation(i => typesCache.GetByValue <ServiceChannelType>(i.TypeId), o => o.SubEntityType)
                             .AddSimple(i => i.TypeId, o => o.TypeId)
                             .AddSimple(i => i.UnificRootId, o => o.UnificRootId)
                             .AddSimple(i => i.PublishingStatusId, o => o.PublishingStatusId)
                             .AddLocalizable(i => i.Phones.Select(x => x.Phone), o => o.PhoneNumber)
                             .AddLocalizable(i => i.PrintableFormChannels?.FirstOrDefault()?.FormIdentifiers, o => o.FormIdentifier)
                             .AddSimple(i => i.Modified, o => o.Modified)
                             .AddSimple(i => i.Id, o => o.Id)
                             .AddSimple(i => i.UnificRootId, o => o.RootId)
                             .AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(i => i.LanguageAvailabilities.OrderBy(x => languageOrderCache.Get(x.LanguageId)), o => o.LanguagesAvailabilities)
                             .AddNavigation(i => i.Versioning, o => o.Version)
                             .AddSimple(i => i.OrganizationId, o => o.OrganizationId);

            if (entity.UnificRoot != null)
            {
                definition.AddSimple(i => i.UnificRoot.ServiceServiceChannels.Count(
                                         x => x.Service.Versions.Any(y => y.PublishingStatusId != typesCache.Get <PublishingStatusType>(PublishingStatus.Deleted.ToString()))), o => o.ConnectedServices);
            }

            var phone = definition.GetFinal();

            if (phone.PhoneNumber == null)
            {
                definition.AddNavigation(i => i.Phones.Select(x => x.Phone).FirstOrDefault(), o => o.PhoneNumber);
            }

            return(phone);
        }