mirror of https://github.com/abpframework/abp.git
2396 changed files with 369727 additions and 15928 deletions
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"Account": "Conta", |
||||
|
"Welcome": "Bem-vindo", |
||||
|
"UseOneOfTheFollowingLinksToContinue": "Use um dos seguintes links para continuar", |
||||
|
"FrameworkHomePage": "Página inicial do Framework", |
||||
|
"FrameworkDocumentation": " Documentação do Framework", |
||||
|
"OfficialBlog": "Blog oficial", |
||||
|
"CommercialHomePage": "Página inicial comercial", |
||||
|
"CommercialSupportWebSite": "Site de suporte comercial" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,60 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"Permission:NpmPackages": "Pacotes NPM", |
||||
|
"Permission:NugetPackages": "Pacotes Nuget", |
||||
|
"Permission:Maintenance": "Manutenção", |
||||
|
"Permission:Maintain": "Manter", |
||||
|
"Permission:ClearCaches": "Limpar caches", |
||||
|
"Permission:Modules": "Módulos", |
||||
|
"Permission:Packages": "Pacotes", |
||||
|
"Permission:Edit": "Editar", |
||||
|
"Permission:Delete": "Excluir", |
||||
|
"Permission:Create": "Criar", |
||||
|
"Menu:Packages": "Pacotes", |
||||
|
"NpmPackageDeletionWarningMessage": "Este pacote NPM será excluído. Você confirma isso?", |
||||
|
"NugetPackageDeletionWarningMessage": "Este pacote Nuget será excluído. Você confirma isso?", |
||||
|
"ModuleDeletionWarningMessage": "Este módulo será excluído. Você confirma isso?", |
||||
|
"Name": "Nome", |
||||
|
"DisplayName": "Mostrar nome", |
||||
|
"ShortDescription": "Breve descrição", |
||||
|
"NameFilter": "Nome", |
||||
|
"CreationTime": "Hora da criação", |
||||
|
"IsPro": "É profissional", |
||||
|
"EfCoreConfigureMethodName": "Configurar nome do método", |
||||
|
"IsProFilter": "É profissional", |
||||
|
"ApplicationType": "Tipo de aplicativo", |
||||
|
"Target": "Objetivo", |
||||
|
"TargetFilter": "Objetivo", |
||||
|
"ModuleClass": "Classe do módulo", |
||||
|
"NugetPackageTarget.DomainShared": "Domínio compartilhado", |
||||
|
"NugetPackageTarget.Domain": "Domínio", |
||||
|
"NugetPackageTarget.Application": "Aplicativo", |
||||
|
"NugetPackageTarget.ApplicationContracts": "Contratos de aplicativos", |
||||
|
"NugetPackageTarget.HttpApi": "Http Api", |
||||
|
"NugetPackageTarget.HttpApiClient": "Cliente HTTP da API", |
||||
|
"NugetPackageTarget.Web": "Web", |
||||
|
"NugetPackageTarget.EntityFrameworkCore": "EntityFramework Core", |
||||
|
"NugetPackageTarget.MongoDB": "MongoDB", |
||||
|
"Edit": "Editar", |
||||
|
"Delete": "Excluir", |
||||
|
"Refresh": "Atualizar", |
||||
|
"NpmPackages": "Pacotes NPM", |
||||
|
"NugetPackages": "Pacotes Nuget", |
||||
|
"NpmPackageCount": "Contagem de pacotes NPM", |
||||
|
"NugetPackageCount": "Contagem de pacotes Nuget", |
||||
|
"Module": "Módulos", |
||||
|
"ModuleInfo": "Informações do módulo", |
||||
|
"CreateANpmPackage": "Criar um pacote NPM", |
||||
|
"CreateAModule": "Criar um módulo", |
||||
|
"CreateANugetPackage": "Criar um pacote Nuget", |
||||
|
"AddNew": "Adicionar novo", |
||||
|
"PackageAlreadyExist{0}": "\"{0}\" o pacote já foi adicionado.", |
||||
|
"ClearCache": "Limpar cache", |
||||
|
"SuccessfullyCleared": "Limpo com sucesso", |
||||
|
"Menu:NpmPackages": "Pacotes NPM", |
||||
|
"Menu:Modules": "Módulos", |
||||
|
"Menu:Maintenance": "Manutenção", |
||||
|
"Menu:NugetPackages": "Pacotes Nuget" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,31 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"Volo.AbpIo.Domain:010004": "Número máximo de membros atingido!", |
||||
|
"Volo.AbpIo.Domain:010005": "Número máximo de proprietários atingido!", |
||||
|
"Volo.AbpIo.Domain:010006": "Este usuário já é proprietário desta organização!", |
||||
|
"Volo.AbpIo.Domain:010007": "Este usuário já é desenvolvedor desta organização!", |
||||
|
"Volo.AbpIo.Domain:010008": "A contagem permitida de desenvolvedores não pode ser inferior à contagem atual de desenvolvedores!", |
||||
|
"Volo.AbpIo.Domain:010009": "A contagem permitida de desenvolvedores não pode ser inferior a 0!", |
||||
|
"Volo.AbpIo.Domain:010010": "A contagem máxima de endereços mac foi excedida!", |
||||
|
"Volo.AbpIo.Domain:010011": "A licença pessoal não pode ter mais de um desenvolvedor!", |
||||
|
"Volo.AbpIo.Domain:010012": "A licença não pode ser estendida um mês após a expiração da licença!", |
||||
|
"Volo.AbpIo.Domain:020001": "Não foi possível excluir este pacote NPM porque \"{NugetPackages}\" Os pacotes Nuget dependem deste pacote.", |
||||
|
"Volo.AbpIo.Domain:020002": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote.", |
||||
|
"Volo.AbpIo.Domain:020003": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote e \"{NugetPackages}\" Os pacotes Nuget dependem deste pacote.", |
||||
|
"Volo.AbpIo.Domain:020004": "Não foi possível excluir este pacote Nuget porque \"{Modules}\" Módulos estão usando este pacote.", |
||||
|
"WantToLearn?": "Quer aprender?", |
||||
|
"ReadyToGetStarted?": "Pronto para começar?", |
||||
|
"JoinOurCommunity": "Participe da nossa comunidade", |
||||
|
"GetStartedUpper": "INICIAR", |
||||
|
"ForkMeOnGitHub": "Bifurque-me no GitHub", |
||||
|
"Features": "Recursos", |
||||
|
"GetStarted": "Introdução", |
||||
|
"Documents": "Documentos", |
||||
|
"Community": "Comunidade", |
||||
|
"ContributionGuide": "Guia de contribuição", |
||||
|
"Blog": "Blog", |
||||
|
"Commercial": "Comercial", |
||||
|
"SeeDocuments": "Ver documentos" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"OrganizationManagement": "Gerenciamento da organização", |
||||
|
"OrganizationList": "Lista de organização", |
||||
|
"Volo.AbpIo.Commercial:010003": "Você não é proprietário desta organização!", |
||||
|
"OrganizationNotFoundMessage": "Nenhuma organização encontrada!", |
||||
|
"DeveloperCount": "Número de desenvolvedores", |
||||
|
"Owners": "Proprietários", |
||||
|
"AddMember": "Adicionar membro", |
||||
|
"AddOwner": "Adicionar proprietário", |
||||
|
"AddDeveloper": "Adicionar desenvolvedor", |
||||
|
"UserName": "Nome de usuário", |
||||
|
"Name": "Nome", |
||||
|
"EmailAddress": "Endereço de email", |
||||
|
"Developers": "Desenvolvedores", |
||||
|
"LicenseType": "Tipo de licença", |
||||
|
"Manage": "Gerenciar", |
||||
|
"StartDate": "Data de início", |
||||
|
"EndDate": "Data final", |
||||
|
"Modules": "Módulos", |
||||
|
"LicenseExtendMessage": "A data de término da sua licença foi estendida para {0}", |
||||
|
"LicenseUpgradeMessage": "Sua licença foi atualizada para {0}", |
||||
|
"LicenseAddDeveloperMessage": "{0} desenvolvedores adicionados à sua licença", |
||||
|
"Volo.AbpIo.Commercial:010004": "Não foi possível encontrar o usuário especificado! O usuário já deve ter se registrado.", |
||||
|
"MyOrganizations": "Minhas organizações", |
||||
|
"ApiKey": "Chave da API", |
||||
|
"UserNameNotFound": "Não há usuário com nome de usuário {0}" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,160 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"GetStarted": "Introdução", |
||||
|
"Create": "Criar", |
||||
|
"NewProject": "Novo projeto", |
||||
|
"DirectDownload": "Download direto", |
||||
|
"ProjectName": "Nome do projeto", |
||||
|
"ProjectType": "Tipo de projeto", |
||||
|
"DatabaseProvider": "Provedor de banco de dados", |
||||
|
"NTier": "N-Tier", |
||||
|
"IncludeUserInterface": "Incluir interface do usuário", |
||||
|
"CreateNow": "Criar agora", |
||||
|
"TheStartupProject": "O projeto de inicialização", |
||||
|
"Tutorial": "Tutorial", |
||||
|
"UsingCLI": "Usando CLI", |
||||
|
"SeeDetails": "Ver detalhes", |
||||
|
"AbpShortDescription": "ABP é uma arquitetura completa e uma forte infraestrutura para criar aplicativos da web modernos! Segue as melhores práticas e convenções para fornecer uma sólida experiência de desenvolvimento.", |
||||
|
"SourceCodeUpper": "CÓDIGO FONTE", |
||||
|
"LatestReleaseLogs": "Últimos registros de lançamento", |
||||
|
"Infrastructure": "Infra-estrutura", |
||||
|
"Architecture": "Arquitetura", |
||||
|
"Modular": "Modular", |
||||
|
"DontRepeatYourself": "Não se repita", |
||||
|
"DeveloperFocused": "Desenvolvedor focado", |
||||
|
"FullStackApplicationInfrastructure": "Infraestrutura de aplicativos full stack.", |
||||
|
"DomainDrivenDesign": "Design Orientado a Domínio", |
||||
|
"DomainDrivenDesignExplanation": "Projetado e desenvolvido com base nos padrões e princípios DDD. Fornece um modelo em camadas para seu aplicativo.", |
||||
|
"Authorization": "Autorização", |
||||
|
"AuthorizationExplanation": "Autorização avançada com usuário, função e sistema de permissão refinado. Criada na biblioteca Microsoft Identity.", |
||||
|
"MultiTenancy": "Múltiplos inquilinos", |
||||
|
"MultiTenancyExplanation": "Aplicativos SaaS facilitados! Multilocação integrada do banco de dados à interface do usuário.", |
||||
|
"CrossCuttingConcerns": "Preocupações transversais", |
||||
|
"CrossCuttingConcernsExplanation": "Infraestrutura completa para autorização, validação, tratamento de exceções, armazenamento em cache, log de auditoria, gerenciamento de transações e assim por diante.", |
||||
|
"BuiltInBundlingMinification": "Pacote & Minificação Integrados", |
||||
|
"BuiltInBundlingMinificationExplanation": "Pare de usar ferramentas externas para empacotamento e minificação. O ABP oferece uma maneira mais simples, dinâmica, poderosa, modular e integrada!", |
||||
|
"VirtualFileSystem": "Sistema de arquivos virtual", |
||||
|
"VirtualFileSystemExplanation": "Incorpore visualizações, scripts, estilos, imagens ... aos pacotes/bibliotecas e reutilize-os em diferentes aplicativos.", |
||||
|
"Theming": "Theming", |
||||
|
"ThemingExplanation": "Use e personalize o tema da interface do usuário padrão baseado em bootstrap-based ou crie o seu próprio.", |
||||
|
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms", |
||||
|
"BootstrapTagHelpersDynamicFormsExplanation": "Sistema de tarefas em segundo plano integrado que pode ser integrado ao Hangfire, RabbitMQ ou a qualquer ferramenta que você desejar.", //TODO explanation doesn't match. |
||||
|
"HTTPAPIsDynamicProxies": "APIs HTTP e proxies dinâmicos", |
||||
|
"HTTPAPIsDynamicProxiesExplanation": "Exponha automaticamente os serviços de aplicativo como APIs HTTP do estilo REST e consuma com proxies JavaScript & C # dinâmicos.", |
||||
|
"CompleteArchitectureInfo": "Arquitetura moderna para criar soluções de software sustentáveis.", |
||||
|
"DomainDrivenDesignBasedLayeringModelExplanation": "Ajuda você a implementar uma arquitetura em camadas baseada em DDD e a construir uma base de código sustentável.", |
||||
|
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Fornece modelos de inicialização, abstrações, classes base, serviços, documentação e guias para ajudá-lo a desenvolver seu aplicativo com base nos padrões e princípios DDD.", |
||||
|
"MicroserviceCompatibleModelExplanation": "O framework principal e os módulos de pré-construção foram projetados para a arquitetura de microsserviço.", |
||||
|
"MicroserviceCompatibleModelExplanationCont": "Fornece infraestrutura, integrações, amostras e documentação para implementar soluções de microsserviço mais facilmente, enquanto isso não traga complexidade adicional se você quiser um aplicativo monolítico.", |
||||
|
"ModularInfo": "O ABP fornece um sistema completo de modularidade para permitir o desenvolvimento de módulos de aplicativos reutilizáveis.", |
||||
|
"PreBuiltModulesThemes": "Módulos pré-construídos & Temas", |
||||
|
"PreBuiltModulesThemesExplanation": "Módulos e temas de código aberto e comerciais estão prontos para uso em seu aplicativo de negócios.", |
||||
|
"NuGetNPMPackages": "Pacotes NuGet & NPM", |
||||
|
"NuGetNPMPackagesExplanation": "Distribuído como pacotes NuGet & NPM. Fácil de instalar e atualizar.", |
||||
|
"ExtensibleReplaceable": "Extensível/Substituível", |
||||
|
"ExtensibleReplaceableExplanation": "Todos os serviços e módulos são projetados para extensibilidade. Você pode substituir serviços, páginas, estilos, componentes...", |
||||
|
"CrossCuttingConcernsExplanation2": "Mantenha seu código mais limpo e concentre-se em seu próprio código comercial.", |
||||
|
"CrossCuttingConcernsExplanation3": "Não perca tempo para implementar requisitos de aplicativos comuns repetidamente.", |
||||
|
"AuthenticationAuthorization": "Autenticação & Autorização", |
||||
|
"ExceptionHandling": "Manipulação de exceção", |
||||
|
"Validation": "Validação", |
||||
|
"DatabaseConnection": "Conexão com o Banco de Dados", |
||||
|
"TransactionManagement": "Gerenciamento de transações", |
||||
|
"AuditLogging": "Log de auditoria", |
||||
|
"Caching": "Armazenamento em cache", |
||||
|
"Multitenancy": "Múltiplos inquilinos", |
||||
|
"DataFiltering": "Filtragem de dados", |
||||
|
"ConventionOverConfiguration": "Convenção sobre configuração", |
||||
|
"ConventionOverConfigurationExplanation": "O ABP implementa convenções comuns de aplicativos por padrão com uma configuração mínima ou zero.", |
||||
|
"ConventionOverConfigurationExplanationList1": "Registra automaticamente serviços conhecidos na injeção de dependência.", |
||||
|
"ConventionOverConfigurationExplanationList2": "Expõe os serviços de aplicativos como APIs HTTP, nomeando convenções.", |
||||
|
"ConventionOverConfigurationExplanationList3": "Cria proxies de clientes HTTP dinâmicos para C # e JavaScript.", |
||||
|
"ConventionOverConfigurationExplanationList4": "Fornece repositórios padrão para suas entidades.", |
||||
|
"ConventionOverConfigurationExplanationList5": "Gerencia a unidade de trabalho por solicitação da Web ou método de serviço de aplicativo.", |
||||
|
"ConventionOverConfigurationExplanationList6": "Publica, cria, atualiza e exclui eventos para suas entidades.", |
||||
|
"BaseClasses": "Classes base", |
||||
|
"BaseClassesExplanation": "Classes base pré-criadas para padrões de aplicativos comuns.", |
||||
|
"DeveloperFocusedExplanation": "O ABP é para desenvolvedores.", |
||||
|
"DeveloperFocusedExplanationCont": "Tem como objetivo simplificar o desenvolvimento diário de seu software, sem restringir o trabalho de baixo nível quando necessário.", |
||||
|
"SeeAllFeatures": "Veja todos os recursos", |
||||
|
"CLI_CommandLineInterface": "CLI (Command Line Interface)", |
||||
|
"CLI_CommandLineInterfaceExplanation": "A CLI é automatizada para criar novos projetos e adicionar módulos ao seu aplicativo.", |
||||
|
"StartupTemplates": "Modelos de inicialização", |
||||
|
"StartupTemplatesExplanation": "Vários modelos de inicialização fornecem uma solução totalmente configurada para iniciar rapidamente seu desenvolvimento.", |
||||
|
"BasedOnFamiliarTools": "Baseado em ferramentas familiares", |
||||
|
"BasedOnFamiliarToolsExplanation": "Construído e integrado a ferramentas populares que você já conhece. Baixa curva de aprendizado, fácil adaptação, desenvolvimento confortável.", |
||||
|
"ORMIndependent": "ORM Independente", |
||||
|
"ORMIndependentExplanation": "O framework principal é independente do ORM/banco de dados e pode funcionar com qualquer fonte de dados. Os provedores Entity Framework Core e MongoDB já estão disponíveis.", |
||||
|
"Features": "Recursos", |
||||
|
"ABPCLI": "ABP CLI", |
||||
|
"Modularity": "Modularidade", |
||||
|
"BootstrapTagHelpers": "Bootstrap Tag Helpers", |
||||
|
"DynamicForms": "Formulários dinâmicos", |
||||
|
"BundlingMinification": "Empacotamento e Minificação", |
||||
|
"BackgroundJobs": "Trabalhos em segundo plano", |
||||
|
"DDDInfrastructure": "Infraestrutura DDD", |
||||
|
"DomainDrivenDesignInfrastructure": "Infraestrutura de Design Orientada a Domínio", |
||||
|
"AutoRESTAPIs": "APIs REST automáticas", |
||||
|
"DynamicClientProxies": "Proxies de cliente dinâmicos", |
||||
|
"DistributedEventBus": "Barramento de Eventos Distribuídos", |
||||
|
"DistributedEventBusWithRabbitMQIntegration": "Barramento de Eventos Distribuídos com Integração RabbitMQ", |
||||
|
"TestInfrastructure": "Infraestrutura de Teste", |
||||
|
"AuditLogging": "Log de auditoria", |
||||
|
"AuditLoggingEntityHistories": "Log de auditoria e históricos de entidades", |
||||
|
"ObjectToObjectMapping": "Objeto para Mapeamento de Objetos", |
||||
|
"EmailSMSAbstractions": "Abstrações de E-mail e SMS", |
||||
|
"EmailSMSAbstractionsWithTemplatingSupport": "Abstrações de e-mail e SMS com suporte a modelos", |
||||
|
"Localization": "Localização", |
||||
|
"SettingManagement": "Gerenciamento de configurações", |
||||
|
"ExtensionMethods": "Métodos de extensão", |
||||
|
"ExtensionMethodsHelpers": "Métodos de extensão & Helpers", |
||||
|
"AspectOrientedProgramming": "Programação Orientada a Aspectos", |
||||
|
"DependencyInjection": "Injeção de dependência", |
||||
|
"DependencyInjectionByConventions": "Injeção de dependência por convenções", |
||||
|
"ABPCLIExplanation": "O ABP CLI (Command Line Interface) é uma ferramenta de linha de comando para executar algumas operações comuns em soluções baseadas em ABP.", |
||||
|
"ModularityExplanation": "O ABP fornece uma infraestrutura completa para criar seus próprios módulos de aplicativos, que podem ter entidades, serviços, integração de banco de dados, APIs, componentes de interface do usuário e assim por diante ...", //TODO: strong "your own application modules",- |
||||
|
"MultiTenancyExplanation": "ABP framework não apenas suporta o desenvolvimento de aplicativos com vários inquilinos, mas também faz com que seu código desconheça a multilocação.", |
||||
|
"MultiTenancyExplanation2": "Pode determinar automaticamente o inquilino atual, isolar os dados de inquilinos diferentes um do outro.", |
||||
|
"MultiTenancyExplanation3": "Suporta abordagens de banco de dados único, banco de dados por inquilino e híbrido.", |
||||
|
"MultiTenancyExplanation4": "Você se concentra no seu código comercial e deixa o framework lidar com a multilocação em seu nome.", |
||||
|
"BootstrapTagHelpersExplanation": "Em vez de escrever manualmente os detalhes repetidos dos componentes do bootstrap, use os tag helpers da ABP para simplificá-lo e tirar proveito do intellisense. Você pode definitivamente usar o Bootstrap sempre que precisar.", |
||||
|
"DynamicFormsExplanation": "Formulário dinâmico e entrada de tag helpers pode criar o formulário completo a partir de uma classe C# como modelo.", |
||||
|
"AuthenticationAuthorizationExplanation": "Opções avançadas de autenticação e autorização integradas ao ASP.NET Core Identity & IdentityServer4. Fornece um sistema de permissões extensível e detalhado.", |
||||
|
"CrossCuttingConcernsExplanation": "Não se repita para implementar todas essas coisas comuns repetidamente. Concentre-se no seu código comercial e permita que a ABP os automatize por convenções.", |
||||
|
"DatabaseConnectionTransactionManagement": "Gerenciamento de conexão e transação de banco de dados", |
||||
|
"CorrelationIdTracking": "Rastreamento de ID de correlação", |
||||
|
"BundlingMinificationExplanation": "A ABP oferece um sistema de empacotamento e minificação simples, dinâmico, poderoso, modular e embutido.", |
||||
|
"VirtualFileSystemnExplanation": "O Sistema de Arquivos Virtual possibilita gerenciar arquivos que não existem fisicamente no sistema de arquivos (disco). É usado principalmente para incorporar arquivos (js, css, image, cshtml ...) em assemblies e usar como arquivos físicos em tempo de execução.", |
||||
|
"ThemingExplanation": "O sistema Theming permite o desenvolvimento independente do tema do aplicativo e dos módulos, definindo um conjunto de bibliotecas e layouts básicos comuns, com base na estrutura mais recente do Bootstrap.", |
||||
|
"DomainDrivenDesignInfrastructureExplanation": "Uma infraestrutura completa para criar aplicativos em camadas com base nos padrões e princípios de Design Orientado a Domínio;", |
||||
|
"Specification": "Especificação", |
||||
|
"Repository": "Repositório", |
||||
|
"DomainService": "Serviço de Domínio", |
||||
|
"ValueObject": "Value Object", |
||||
|
"ApplicationService": "Serviço de Aplicativo", |
||||
|
"DataTransferObject": "Objeto de transferência de dados", |
||||
|
"AggregateRootEntity": "Raiz agregada, entidade", |
||||
|
"AutoRESTAPIsExplanation": "O ABP pode configurar automaticamente seus serviços de aplicativo como controladores de API por convenção.", |
||||
|
"DynamicClientProxiesExplanation": "Consumir facilmente suas APIs de JavaScript e C # clientes.", |
||||
|
"DistributedEventBusWithRabbitMQIntegrationExplanation": "Publique e consuma facilmente eventos distribuídos usando o Barramento de Eventos Distribuídos interno com a integração RabbitMQ disponível.", |
||||
|
"TestInfrastructureExplanation": "A estrutura foi desenvolvida para testes de unidade e integração. Fornece classes básicas para facilitar. Os modelos de inicialização são pré-configurados para teste.", |
||||
|
"AuditLoggingEntityHistoriesExplanation": "Registro de auditoria interno para aplicativos críticos para os negócios. Solicitação, serviço, log de auditoria no nível do método e histórico de entidades com detalhes no nível da propriedade.", |
||||
|
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "As abstrações IEmailSender e ISmsSender dissociam sua lógica de aplicativo da infraestrutura. O sistema avançado de modelo de email permite criar e localizar modelos de email e usá-lo facilmente sempre que necessário.", |
||||
|
"LocalizationExplanation": "O sistema de localização permite criar recursos em arquivos JSON simples e usá-los para localizar sua interface do usuário. Ele suporta cenários avançados como herança, extensões e integração de JavaScript, enquanto é totalmente compatível com o sistema de localização do AspNet Core.", |
||||
|
"SettingManagementExplanation": "Defina as configurações do seu aplicativo e obtenha valores no tempo de execução com base na configuração atual, inquilino e usuário.", |
||||
|
"ExtensionMethodsHelpersExplanation": "Não se repita, mesmo em partes triviais do código. Extensões e helpers para tipos padrão tornam seu código muito mais limpo e fácil de escrever.", |
||||
|
"AspectOrientedProgrammingExplanation": "Fornece uma infraestrutura confortável para criar proxies dinâmicos e implementar a Programação Orientada a Aspectos. Intercepte qualquer classe e execute seu código antes e depois de cada execução de método.", |
||||
|
"DependencyInjectionByConventionsExplanation": "Não há necessidade de registrar suas classes na injeção de dependência manualmente. Registra automaticamente tipos de serviço comuns por convenção. Para outros tipos de serviços, você pode usar interfaces e atributos para facilitar e colocar no local.", |
||||
|
"DataFilteringExplanation": "Defina e use filtros de dados que serão aplicados automaticamente quando você consultar entidades do banco de dados. Os filtros Soft Delete e MultiTenant são fornecidos imediatamente quando você implementa interfaces simples.", |
||||
|
"PublishEvents": "Publicar eventos", |
||||
|
"HandleEvents": "Manipular Eventos", |
||||
|
"AndMore": "e mais...", |
||||
|
"Code": "Código", |
||||
|
"Result": "Resultado", |
||||
|
"SeeTheDocumentForMoreInformation": "Consulte o <a href=\"{1}\">{0} documento</a> para obter mais informações", |
||||
|
"IndexPageHeroSection": "<span class=\"first-line shine\"><strong>código aberto</strong></span><span class=\"second-line text-uppercase\">Aplicativo da Web<br />Framework </span><span class=\"third-line shine2\"><strong>para o ASP.NET Core</strong></span>", |
||||
|
"UiFramework": "UI Framework", |
||||
|
"EmailAddress": "Endereço de email" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
<Project> |
||||
|
<PropertyGroup> |
||||
|
<LangVersion>latest</LangVersion> |
||||
|
<NoWarn>$(NoWarn);CS1591</NoWarn> |
||||
|
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles> |
||||
|
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> |
||||
|
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> |
||||
|
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> |
||||
|
</PropertyGroup> |
||||
|
</Project> |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53450/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Authentication.OAuth": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53451/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53760/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.MultiTenancy": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53763/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:52302/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Mvc.Client": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:52303/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,116 @@ |
|||||
|
using System; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Http; |
||||
|
using Microsoft.Extensions.Caching.Distributed; |
||||
|
using Volo.Abp.AspNetCore.Mvc.MultiTenancy; |
||||
|
using Volo.Abp.Caching; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.Http.Client.DynamicProxying; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
using Volo.Abp.Threading; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.Client |
||||
|
{ |
||||
|
public class RemoteTenantStore : ITenantStore, ITransientDependency |
||||
|
{ |
||||
|
protected IHttpClientProxy<IAbpTenantAppService> Proxy { get; } |
||||
|
protected IHttpContextAccessor HttpContextAccessor { get; } |
||||
|
protected IDistributedCache<TenantConfiguration> Cache { get; } |
||||
|
|
||||
|
public RemoteTenantStore( |
||||
|
IHttpClientProxy<IAbpTenantAppService> proxy, |
||||
|
IHttpContextAccessor httpContextAccessor, |
||||
|
IDistributedCache<TenantConfiguration> cache) |
||||
|
{ |
||||
|
Proxy = proxy; |
||||
|
HttpContextAccessor = httpContextAccessor; |
||||
|
Cache = cache; |
||||
|
} |
||||
|
|
||||
|
public async Task<TenantConfiguration> FindAsync(string name) |
||||
|
{ |
||||
|
var cacheKey = CreateCacheKey(name); |
||||
|
var httpContext = HttpContextAccessor?.HttpContext; |
||||
|
|
||||
|
if (httpContext != null && httpContext.Items[cacheKey] is TenantConfiguration tenantConfiguration) |
||||
|
{ |
||||
|
return tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
tenantConfiguration = await Cache.GetOrAddAsync( |
||||
|
cacheKey, |
||||
|
async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)), |
||||
|
() => new DistributedCacheEntryOptions |
||||
|
{ |
||||
|
AbsoluteExpirationRelativeToNow = |
||||
|
TimeSpan.FromMinutes(5) //TODO: Should be configurable.
|
||||
|
} |
||||
|
); |
||||
|
|
||||
|
if (httpContext != null) |
||||
|
{ |
||||
|
httpContext.Items[cacheKey] = tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
return tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
public async Task<TenantConfiguration> FindAsync(Guid id) |
||||
|
{ |
||||
|
var cacheKey = CreateCacheKey(id); |
||||
|
var httpContext = HttpContextAccessor?.HttpContext; |
||||
|
|
||||
|
if (httpContext != null && httpContext.Items[cacheKey] is TenantConfiguration tenantConfiguration) |
||||
|
{ |
||||
|
return tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
tenantConfiguration = await Cache.GetOrAddAsync( |
||||
|
cacheKey, |
||||
|
async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)), |
||||
|
() => new DistributedCacheEntryOptions |
||||
|
{ |
||||
|
AbsoluteExpirationRelativeToNow = |
||||
|
TimeSpan.FromMinutes(5) //TODO: Should be configurable.
|
||||
|
} |
||||
|
); |
||||
|
|
||||
|
if (httpContext != null) |
||||
|
{ |
||||
|
httpContext.Items[cacheKey] = tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
return tenantConfiguration; |
||||
|
} |
||||
|
|
||||
|
public TenantConfiguration Find(string name) |
||||
|
{ |
||||
|
return AsyncHelper.RunSync(() => FindAsync(name)); |
||||
|
} |
||||
|
|
||||
|
public TenantConfiguration Find(Guid id) |
||||
|
{ |
||||
|
return AsyncHelper.RunSync(() => FindAsync(id)); |
||||
|
} |
||||
|
|
||||
|
protected virtual TenantConfiguration CreateTenantConfiguration(FindTenantResultDto tenantResultDto) |
||||
|
{ |
||||
|
if (!tenantResultDto.Success || tenantResultDto.TenantId == null) |
||||
|
{ |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name); |
||||
|
} |
||||
|
|
||||
|
protected virtual string CreateCacheKey(string tenantName) |
||||
|
{ |
||||
|
return $"RemoteTenantStore_Name_{tenantName}"; |
||||
|
} |
||||
|
|
||||
|
protected virtual string CreateCacheKey(Guid tenantId) |
||||
|
{ |
||||
|
return $"RemoteTenantStore_Id_{tenantId:N}"; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
using System; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy |
||||
|
{ |
||||
|
[Serializable] |
||||
|
public class FindTenantResultDto |
||||
|
{ |
||||
|
public bool Success { get; set; } |
||||
|
|
||||
|
public Guid? TenantId { get; set; } |
||||
|
|
||||
|
public string Name { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
using System; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy |
||||
|
{ |
||||
|
public interface IAbpTenantAppService : IApplicationService |
||||
|
{ |
||||
|
Task<FindTenantResultDto> FindTenantByNameAsync(string name); |
||||
|
|
||||
|
Task<FindTenantResultDto> FindTenantByIdAsync(Guid id); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53762/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Bundling": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53765/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,52 @@ |
|||||
|
using System; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
using Volo.Abp.AspNetCore.Mvc.MultiTenancy; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
|
||||
|
namespace Pages.Abp.MultiTenancy |
||||
|
{ |
||||
|
public class AbpTenantAppService : ApplicationService, IAbpTenantAppService |
||||
|
{ |
||||
|
protected ITenantStore TenantStore { get; } |
||||
|
|
||||
|
public AbpTenantAppService(ITenantStore tenantStore) |
||||
|
{ |
||||
|
TenantStore = tenantStore; |
||||
|
} |
||||
|
|
||||
|
public async Task<FindTenantResultDto> FindTenantByNameAsync(string name) |
||||
|
{ |
||||
|
var tenant = await TenantStore.FindAsync(name); |
||||
|
|
||||
|
if (tenant == null) |
||||
|
{ |
||||
|
return new FindTenantResultDto { Success = false }; |
||||
|
} |
||||
|
|
||||
|
return new FindTenantResultDto |
||||
|
{ |
||||
|
Success = true, |
||||
|
TenantId = tenant.Id, |
||||
|
Name = tenant.Name |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
public async Task<FindTenantResultDto> FindTenantByIdAsync(Guid id) |
||||
|
{ |
||||
|
var tenant = await TenantStore.FindAsync(id); |
||||
|
|
||||
|
if (tenant == null) |
||||
|
{ |
||||
|
return new FindTenantResultDto { Success = false }; |
||||
|
} |
||||
|
|
||||
|
return new FindTenantResultDto |
||||
|
{ |
||||
|
Success = true, |
||||
|
TenantId = tenant.Id, |
||||
|
Name = tenant.Name |
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,37 +1,34 @@ |
|||||
using System.Threading.Tasks; |
using System; |
||||
|
using System.Threading.Tasks; |
||||
using Microsoft.AspNetCore.Mvc; |
using Microsoft.AspNetCore.Mvc; |
||||
using Volo.Abp.AspNetCore.Mvc; |
using Volo.Abp.AspNetCore.Mvc; |
||||
using Volo.Abp.MultiTenancy; |
using Volo.Abp.AspNetCore.Mvc.MultiTenancy; |
||||
|
|
||||
namespace Pages.Abp.MultiTenancy |
namespace Pages.Abp.MultiTenancy |
||||
{ |
{ |
||||
[Route("api/abp/multi-tenancy")] |
[Route("api/abp/multi-tenancy")] |
||||
public class AbpTenantController : AbpController |
public class AbpTenantController : AbpController, IAbpTenantAppService |
||||
{ |
{ |
||||
|
private readonly IAbpTenantAppService _abpTenantAppService; |
||||
|
|
||||
protected ITenantStore TenantStore { get; } |
public AbpTenantController(IAbpTenantAppService abpTenantAppService) |
||||
|
|
||||
public AbpTenantController(ITenantStore tenantStore) |
|
||||
{ |
{ |
||||
TenantStore = tenantStore; |
_abpTenantAppService = abpTenantAppService; |
||||
} |
} |
||||
|
|
||||
[HttpGet] |
[HttpGet] |
||||
[Route("find-tenant/{name}")] |
[Route("find-tenant/{name}")] //TODO: Remove on v1.0
|
||||
public async Task<FindTenantResult> FindTenantAsync(string name) |
[Route("tenants/by-name/{name}")] |
||||
|
public async Task<FindTenantResultDto> FindTenantByNameAsync(string name) |
||||
{ |
{ |
||||
var tenant = await TenantStore.FindAsync(name); |
return await _abpTenantAppService.FindTenantByNameAsync(name); |
||||
|
} |
||||
if (tenant == null) |
|
||||
{ |
|
||||
return new FindTenantResult{Success = false}; |
|
||||
} |
|
||||
|
|
||||
return new FindTenantResult |
[HttpGet] |
||||
{ |
[Route("tenants/by-id/{id}")] |
||||
Success = true, |
public async Task<FindTenantResultDto> FindTenantByIdAsync(Guid id) |
||||
TenantId = tenant.Id |
{ |
||||
}; |
return await _abpTenantAppService.FindTenantByIdAsync(id); |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,11 +0,0 @@ |
|||||
using System; |
|
||||
|
|
||||
namespace Pages.Abp.MultiTenancy |
|
||||
{ |
|
||||
public class FindTenantResult |
|
||||
{ |
|
||||
public bool Success { get; set; } |
|
||||
|
|
||||
public Guid? TenantId { get; set; } |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,12 @@ |
|||||
|
{ |
||||
|
"culture": "es-MX", |
||||
|
"texts": { |
||||
|
"GivenTenantIsNotAvailable": "El inquilino {0} no está disponible", |
||||
|
"Tenant": "Inquilino", |
||||
|
"Switch": "cambiar", |
||||
|
"Name": "Nombre", |
||||
|
"SwitchTenant": "Cambiar inquilino", |
||||
|
"SwitchTenantHint": "Deje en blanco el campo nombre para cambiar el lado del host.", |
||||
|
"NotSelected": "No seleccionado" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53766/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Packages": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53768/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53761/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Widgets": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53764/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53767/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.Mvc": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53769/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53783/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore.TestBase": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53784/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:53374/", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"Volo.Abp.AspNetCore": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "http://localhost:53375/" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
using System; |
||||
|
|
||||
|
namespace Volo.Abp.Domain.Entities |
||||
|
{ |
||||
|
public class DisableIdGenerationAttribute : Attribute |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue