Пример #1
0
        public override VmOrganizationStep1 TranslateEntityToVm(OrganizationVersioned entity)
        {
            var step = CreateEntityViewModelDefinition <VmOrganizationStep1>(entity)

                       .AddSimple(input => input.Id, output => output.Id)
                       .AddSimple(input => input.UnificRootId, output => output.UnificRootId)
                       .AddSimple(input => input.TypeId, output => output.OrganizationTypeId)
                       .AddSimple(input => input.AreaInformationTypeId, output => output.AreaInformationTypeId)
                       .AddSimple(input => input.ParentId, output => output.ParentId)
                       .AddLocalizable(input => GetName(input, NameTypeEnum.Name), output => output.OrganizationName)
                       .AddLocalizable(input => GetName(input, NameTypeEnum.AlternateName), output => output.OrganizationAlternateName)
                       .AddNavigation(input => input.Oid, output => output.OrganizationId)
                       .AddSimple(input => typesCache.Compare <NameType>(input.OrganizationDisplayNameTypes.FirstOrDefault(type => type.LocalizationId == RequestLanguageId)?.DisplayNameTypeId, NameTypeEnum.AlternateName.ToString()), output => output.IsAlternateNameUsedAsDisplayName)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.Description), output => output.Description)
                       .AddNavigation(input => input.Municipality, output => output.Municipality)
                       .AddNavigation(input => input.Business, output => output.Business)
                       .AddSimple(input => input.PublishingStatusId, output => output.PublishingStatusId)
                       .AddCollection(input => languageCache.FilterCollection(input.OrganizationEmails.Select(x => x.Email), RequestLanguageCode).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created), output => output.Emails)
                       .AddCollection(input => languageCache.FilterCollection(input.OrganizationPhones.Select(x => x.Phone), RequestLanguageCode).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created), output => output.PhoneNumbers)
                       .AddCollection(input => languageCache.FilterCollection(input.OrganizationWebAddress.OrderBy(x => x.WebPage.OrderNumber).Select(x => x.WebPage), RequestLanguageCode), output => output.WebPages)
                       .AddCollection(input => input.OrganizationAddresses.Where(x => x.CharacterId == typesCache.Get <AddressCharacter>(AddressCharacterEnum.Visiting.ToString())).Select(x => x.Address).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created), output => output.VisitingAddresses)
                       .AddCollection(input => input.OrganizationAddresses.Where(x => x.CharacterId == typesCache.Get <AddressCharacter>(AddressCharacterEnum.Postal.ToString())).Select(x => x.Address).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created), output => output.PostalAddresses)
                       .AddSimpleList(input => input.OrganizationAreas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.BusinessRegions.ToString())).Select(x => x.AreaId), output => output.BusinessRegions)
                       .AddSimpleList(input => input.OrganizationAreas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.HospitalRegions.ToString())).Select(x => x.AreaId), output => output.HospitalRegions)
                       .AddSimpleList(input => input.OrganizationAreas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.Province.ToString())).Select(x => x.AreaId), output => output.Provinces)
                       .AddSimpleList(input => input.OrganizationAreaMunicipalities.Select(x => x.MunicipalityId), output => output.Municipalities)
                       .GetFinal();

            step.ShowContacts        = step.Emails.Count > 0 || step.PhoneNumbers.Count > 0 || step.WebPages.Count > 0 || step.PostalAddresses.Count > 0 || step.VisitingAddresses.Count > 0;
            step.ShowPostalAddress   = step.PostalAddresses.Count > 0;
            step.ShowVisitingAddress = step.VisitingAddresses.Count > 0;


            return(step);
        }
 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());
 }
Пример #3
0
        public override VmServiceStep1 TranslateEntityToVm(ServiceVersioned entity)
        {
            var step = CreateEntityViewModelDefinition <VmServiceStep1>(entity)
                       .AddSimple(input => input.Id, output => output.Id)
                       .AddSimple(input => input.UnificRootId, output => output.UnificRootId)
                       .AddSimple(input => input.OrganizationId, output => output.OrganizationId)
                       .AddLocalizable(input => GetName(input, NameTypeEnum.Name), output => output.ServiceName)
                       .AddLocalizable(input => GetName(input, NameTypeEnum.AlternateName), output => output.AlternateServiceName)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.ShortDescription), output => output.ShortDescriptions)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.Description), output => output.Description)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.ServiceUserInstruction), output => output.UserInstruction)
                       .AddLocalizable(input => input.ServiceRequirements.ToList(), output => output.ServiceUsage)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.ChargeTypeAdditionalInfo), output => output.AdditionalInformation)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.DeadLineAdditionalInfo), output => output.AdditionalInformationDeadLine)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.ProcessingTimeAdditionalInfo), output => output.AdditionalInformationProcessingTime)
                       // .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.TasksAdditionalInfo), output => output.AdditionalInformationTasks)
                       .AddLocalizable(input => GetDescription(input, DescriptionTypeEnum.ValidityTimeAdditionalInfo), output => output.AdditionalInformationValidityTime)
                       .AddSimple(input => input.PublishingStatusId, output => output.PublishingStatusId)
                       .AddNavigation(input => input.StatutoryServiceGeneralDescription, output => output.GeneralDescription)
                       .AddSimple(input => input.TypeId, output => output.ServiceTypeId)
                       .AddSimple(input => input.AreaInformationTypeId, output => output.AreaInformationTypeId)
                       .AddSimple(input => input.ChargeTypeId, output => output.ChargeType)
                       .AddSimpleList(input => input.ServiceLanguages.OrderBy(x => x.Order).Select(x => x.LanguageId), output => output.Languages)
                       .AddCollection(input => input.ServiceLaws.Select(x => x.Law).OrderBy(x => x.OrderNumber).ThenBy(x => x.Modified), output => output.Laws)
                       .AddSimpleList(input => input.ServiceTargetGroups.Where(x => x.Override).Select(x => x.TargetGroupId), output => output.OverrideTargetGroups)
                       .AddSimpleList(input => input.AreaMunicipalities.Select(x => x.MunicipalityId), output => output.Municipalities)
                       .AddSimpleList(input => input.Areas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.Province.ToString())).Select(x => x.AreaId), output => output.Provinces)
                       .AddSimpleList(input => input.Areas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.BusinessRegions.ToString())).Select(x => x.AreaId), output => output.BusinessRegions)
                       .AddSimpleList(input => input.Areas.Where(x => x.Area.AreaTypeId == typesCache.Get <AreaType>(AreaTypeEnum.HospitalRegions.ToString())).Select(x => x.AreaId), output => output.HospitalRegions)
                       .AddSimpleList(input => input.OrganizationServices.Select(x => x.OrganizationId), output => output.Organizers)
                       .AddCollection(input => input.ServiceProducers.OrderBy(x => x.OrderNumber).ThenBy(x => x.Modified), output => output.ServiceProducers)
                       .AddSimple(input => input.FundingTypeId, output => output.FundingTypeId)
                       .AddCollection(input => languageCache.FilterCollection(input.ServiceWebPages.Select(x => x.WebPage), RequestLanguageCode).OrderBy(x => x.OrderNumber).ThenBy(x => x.Created), output => output.ServiceVouchers)
                       .AddCollection <ILanguageAvailability, VmLanguageAvailabilityInfo>(input => input.LanguageAvailabilities, o => o.LanguagesAvailabilities)
            ;

            return(step.GetFinal());
        }
        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);
        }
Пример #5
0
        public ITranslationDefinitions <TIn, TOut> AddLocalizable <TInProperty, TOutProperty>(Func <TIn, TInProperty> fromProperty, Expression <Func <TOut, ICollection <TOutProperty> > > toProperty, Func <TIn, Func <TOutProperty, bool> > entitySelector = null)
            where TInProperty : class where TOutProperty : class, ILocalizable
        {
            var sourcePropertyType = typeof(TInProperty);

            if (sourcePropertyType.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 (languageCache == null)
            {
                languageCache = resolveManager.Resolve <ICacheManager>().LanguageCache;
            }
            if (!clonedTargetApplied)
            {
                unitOfWork?.LoadNavigationProperty(targetInstance, toProperty);
            }

            var targetPropertyInstance      = toProperty.Compile()(targetInstance);
            var filteredOutput              = languageCache.FilterCollection(targetPropertyInstance, requestlanguageId);
            Func <TOutProperty, bool> query = (entitySelector != null) ? entitySelector(sourceInstance) : i => true;
            var toUpdate = filteredOutput.FirstOrDefault(query);

            var translated = CallTranslation <TInProperty, TOutProperty>(fromProperty(sourceInstance), toUpdate);

            if (toUpdate == null && translated != null)
            {
                targetPropertyInstance.Add(translated);
            }
            return(this);
        }
 public ITranslationDefinitions <ServiceChannelVersioned, TOut> AddAttachmentsDefinition <TOut>(ITranslationDefinitions <ServiceChannelVersioned, TOut> definition, LanguageCode requestLanguageCode) where TOut : IAttachments
 {
     return(definition.AddCollection(input => languageCache.FilterCollection(input.Attachments.Select(i => i.Attachment).OrderBy(i => i.OrderNumber).ThenBy(i => i.Modified), requestLanguageCode), output => output.UrlAttachments));
 }