Skip to content

Conversation

@eglauko
Copy link
Member

@eglauko eglauko commented Jan 26, 2026

No description provided.

eglauko added 22 commits July 20, 2025 23:38
Mudanças significativas na configuração e estrutura do projeto.

* Atualização de versões
  - Alteradas versões em `Directory.Build.props` para refletir novas versões.
  - Introduzidas novas propriedades `ProblemsVer` e `GenVer`.

* Refatoração de namespaces
  - Substituição de `RoyalCode.WorkContext.Abstractions` por `RoyalCode.WorkContext` em vários arquivos.
  - Atualizações em `ICreationHandler.cs`, `IValidationHandler.cs`, `CreateCommandHandler.cs` e `SearchesTestes.cs`.

* Melhoria na configuração do DbContext
  - Alterado tipo de `configureBuilder` em `Utils.cs` para `IWorkContextBuilder`.
  - Removido `IConfigureDbContextService.cs` em favor de novas interfaces de configuração.

* Adição de novas interfaces e classes
  - Introduzidas interfaces `IConfigureConventions`, `IConfigureModel` e `IConfigureOptions`.
  - Criada a classe `DefaultDbContext` para implementação padrão do DbContext.

* Extensibilidade e integração de serviços
  - Novos métodos em `UnitOfWorkServiceCollectionExtensions.cs` para adicionar contextos de trabalho.
  - Atualizações em `WorkContextServiceCollectionExtensions.cs` para facilitar a adição de serviços.

* Atualizações em arquivos de projeto
  - Modificações em `RoyalCode.Examples.Api.csproj` e `RoyalCode.Examples.Blogs.csproj` para usar propriedades de versão.
  - Atualizações em `Program.cs` para novas inscrições de serviços.
* Atualização de versão
  - Atualizou a propriedade `ProbVer` para a nova versão `1.0.0-preview-4.4`.

* Melhoria na estrutura SaveResult
  - Adicionou `using System.Diagnostics;` para funcionalidades adicionais.
  - Modificou o construtor para incluir uma propriedade `Exception`.
  - Introduziu uma nova propriedade `Exception` para armazenar exceções.
  - Adicionou o método `EnsureSuccess` para validação de resultados.
* Atualização de versões
  - Alteradas versões de `WorkContextVer`, `ProblemsVer` e `GenVer` no `Directory.Build.props`.

* Modificações na configuração do serviço
  - Substituído `RoyalCode.WorkContext` por `RoyalCode.SmartCommands.WorkContext.Extensions`.
  - Alterada configuração para usar `ConfigureDbContextWithService()` e adicionado `AddUnitOfWorkAdapter()`.

* Novos endpoints
  - Adicionado mapeamento de endpoint para autores em `BlogsEndpoints.cs`.

* Refatoração do contexto de trabalho
  - Refatorado `ConfigureBlogs` para usar `ConfigureModel` e atualizado repositório.
  - Introduzida a classe `BlogMapping` para definir relacionamento entre `Blog` e `Post`.
* Atualização da pipeline CI/CD
  - Adicionadas etapas de build e pack para PostgreSql, Sqlite e SqlServer.

* Versão e estrutura do projeto
  - Atualizada a versão de persistência para 0.8.1.
  - Novos projetos para Sqlite, PostgreSql e SqlServer adicionados à solução.

* Acesso e visibilidade das classes
  - `DefaultDbContext` alterado de interno para público.
  - Implementação interna removida, promovendo uma API mais acessível.

* Extensibilidade e configuração
  - Métodos de extensão para configuração de contextos de trabalho adicionados para novos bancos.
* Atualização de versões
  - Alterado `PersistVer` para `0.8.2` e `WorkContextVer` para `0.8.1`.

* Referências de projeto
  - Adicionadas referências para PostgreSql, Sqlite e SqlServer nos testes.

* Melhoria de testes
  - Novo método de teste para o contexto SQLite em memória.
  - Criada classe `PersonMapping` para configuração da entidade `Person`.

* Comentários e documentação
  - Atualizados comentários em interfaces para inglês.
  - Melhorados comentários em métodos de extensão.

* Extensões de contexto SQLite
  - Novos métodos para garantir criação e semeadura do banco de dados.
  - Adicionada delegate para configurar conexões SQLite em memória.

* Dependências de projeto
  - Removida referência ao `Microsoft.EntityFrameworkCore.Sqlite` e adicionada ao `RoyalCode.WorkContext.Sqlite`.

* Mapeamento de entidades
  - Melhorados mapeamentos para `Blog`, `Post`, `Thread`, `Comment` e `Author`.
* Atualização de dependências
  - Alterado `WorkContextVer` de 0.8.1 para 0.8.2.

* Refatoração de configuração
  - Removido `.ConfigureDbContextWithService()` em `Program.cs`.

* Melhoria de formatação
  - Ajustada a indentação no arquivo `.csproj`.

* Aprimoramento de rotas
  - Adicionado `MapCreatedRoute("{v.Id}")` em `RegisterAuthor.cs`.
* Atualização da configuração do projeto
  - Adiciona a propriedade `<SearchVer>` no `Directory.Build.props`.
  - Inclui nova referência de pacote para `RoyalCode.SmartSearch.AspNetCore`.

* Melhoria na estrutura de endpoints
  - Adiciona novos namespaces em `BlogsEndpoints.cs`.
  - Modifica `MapBlob` para incluir busca de autores.

* Alterações na classe Author
  - Renomeia `CreatedDate` para `CreatedAt` em `Author.cs`.
  - Adiciona classes `AuthorDetails` e `AuthorFilter` para detalhamento e filtragem.

* Configuração de busca
  - Atualiza `ConfigureWorkContext` para incluir `Author` na configuração de buscas.
Mudanças nas versões e dependências
 * Atualização das versões no arquivo de propriedades
  - Atualizados `DomainVer` e `PersistVer` para novos números.
 * Adição de nova dependência
  - Incluída referência para `RoyalCode.SmartSearch.Linq`.

Melhorias na interface e repositório
 * Expansão da funcionalidade de busca
  - Adicionada nova função `FindAsync<TDto, TId>` na interface `IFinder<TEntity>`.
  - Implementada a função no repositório correspondente.

Limpeza de código e remoção de trechos desnecessários
 * Remoção de código não utilizado
  - Limpeza de diretivas `using` em `DbContextExtensions.cs` e `Program.cs`.
  - Removido bloco de código comentado em `DbContextExtensions.cs`.
  - Excluído endpoint de previsão do tempo em `Program.cs`.

Atualizações em endpoints e classes utilitárias
 * Melhoria na estrutura de endpoints
  - Atualizada a classe `BlogsEndpoints` para incluir tags.
  - Modificada a classe `RegisterAuthor` para novos nomes de rotas.
 * Introdução de novas classes utilitárias
  - Criadas classes `FilterById<TEntity>` e `SelectDtoById<TEntity, TDto>` para filtragem e seleção.
 * Adição de métodos de extensão
  - Implementados métodos para encontrar DTOs no `DbContext`.
* Novas funcionalidades no IRepositoriesBuilder
  - Adicionada a função Add(Type entityType) para registrar repositórios por tipo.

* Melhorias na configuração do IUnitOfWorkBuilder
  - Novos métodos para habilitar lazy loading e configurar logging.

* Atualizações no projeto e dependências
  - Referência adicionada ao Microsoft.EntityFrameworkCore.Proxies para lazy loading.

* Alterações na configuração do SqliteWorkContext
  - Mudança na assinatura do delegate para permitir configuração assíncrona.

* Inclusão de testes para repositórios
  - Nova classe RepositoryTests com testes para operações de repositório.
* Atualização de dependências
  - Versão do WorkContextVer atualizada para 0.8.3.
  - Versão do GenVer atualizada para 0.0.5.

* Melhoria na classe AuthorDetails
  - Namespace movido para melhor organização.
  - Novos atributos adicionados para enriquecer a metadata.

* Refinamento na classe RegisterAuthor
  - Atributos de descrição substituídos por novos para maior clareza.
* Atualização de versões de propriedades
  - O `PersistVer` foi atualizado para `0.8.4` para refletir a nova versão.
  - O `SearchVer` foi atualizado para `0.8.2` para incluir melhorias.
* Atualização de dependências
  - Versões de `WorkContextVer`, `SearchVer` e `GenVer` foram incrementadas.

* Refatoração do padrão Unit of Work
  - Substituição de `AddUnitOfWorkAdapter()` por `AddUnitOfWorkAccessor()`.
* Atualização de versão
  - Atualizados `DomainVer` e `PersistVer` para novos números de versão.

* Testes e configuração do UnitOfWork
  - Adicionada nova função de teste para configurar o UnitOfWork.
  - Simplificada a lógica de adição de repositórios no `IUnitOfWorkBuilder`.
  - Introduzido método para adicionar repositórios de entidades.

* Estrutura de e-mail e verificação
  - Atualizada a classe `Author` para incluir verificações de e-mail.
  - Criada a classe `EmailVerificationMapping` para configuração de entidades.
  - Desenvolvida a classe `EmailVerification` com lógica de validação.
  - Adicionada nova classe `VerifyEmail` para futuras implementações.
* Atualização de versão
  - O `WorkContextVer` foi incrementado de `0.8.4` para `0.8.5`.

* Melhoria na inicialização
  - Modificado o `Program.cs` para garantir a criação do banco de dados imediatamente.

* Implementação de verificação de e-mail
  - Adicionados novos namespaces e propriedades `LinkCode` e `UICode` na classe `VerifyEmail`.
  - Introduzido método `HasProblems` para validação de códigos de verificação.
  - Adicionado método `Execute` para lógica de verificação de e-mail assíncrona.

* Refatoração da configuração de contexto
  - O método `ConfigureBlogs` foi simplificado para usar `ConfigureMappingsFromAssembly`.
Theme: Migration to .NET 10 and Solution Reorganization
  -- Upgrade all projects and test targets to .NET 10 (net10.0) for future compatibility and feature support.
  -- Refactor package references to use new version properties (`AspVer`, `ExtVer`, `PgVer`) for improved dependency management.
  -- Update `Directory.Build.props` to include net10.0 and set new internal package versions.
  -- Revise GitHub Actions workflows to build and test with .NET 10.x (prerelease).
  -- Reorganize solution structure in `RoyalCode.EnterprisePatterns.sln` with new folders and updated project nesting.
  -- Change package icon reference to `icon2.png` in `base.targets`.
  -- Update test SDK and dependencies in `tests.targets` to latest versions.
  -- Add conditional compilation in Outbox API to handle `.WithOpenApi()` for .NET 10 and above.
  -- Ensure all affected projects reference correct package versions according to new properties.
Version updates
  -- Bump Domain version from 0.8.0 to 0.8.1 in Directory.Build.props
  -- Bump Persist version from 0.8.5 to 0.8.6 in Directory.Build.props
Modularize work context configuration for EF, add extension methods for assembly-driven setup, and update Persist/Search package versions.

- Modular Work Context Configuration for Entity Framework
  -- Introduced IConfigureWorkContext<TDbContext> interface for custom work context builder configuration per DbContext type.
  -- Added WorkContextBuilderExtensions with methods to apply configurers, register command handlers, search criteria, and repositories from assemblies.
  -- Enabled assembly-driven registration for commands, searches, and repositories for types implementing IEntity.

- Package Version Updates
  -- Updated PersistVer from 0.8.6 to 0.8.7 in Directory.Build.props.
  -- Updated SearchVer from 0.9.0 to 0.9.1 in Directory.Build.props.
Dependency update and extension method enhancement

- Updated Persist package version from 0.8.7 to 0.8.8 to keep dependencies current.

- Added ConfigureQueries extension method to WorkContextBuilderExtensions, enabling registration of query handlers from an assembly for a given DbContext type, with comprehensive XML documentation.
Modernize solution, bump versions, and add Portuguese docs for domain, workcontext, and Copilot usage.

Solution and Documentation Modernization
  -- Renamed solution file to EnterprisePatterns.sln and updated structure.
  -- Added .docs folder to solution items with markdown documentation.
  -- Included documentation files: domain.md, workcontext.md, instructions-for-copilot.md.

Library Version Updates
  -- Bumped PersistVer from 0.8.8 to 0.8.9 and SearchVer from 0.9.1 to 0.10.0 in Directory.Build.props.

Developer and Copilot Guidance
  -- Added comprehensive Portuguese documentation for domain modeling, workcontext usage, and Copilot code generation.
  -- Documentation covers setup, best practices, anti-patterns, and troubleshooting.

No Runtime or API Changes
  -- No changes to source code or library APIs; updates are limited to solution/project structure and documentation.
@eglauko eglauko merged commit 832bc82 into main Jan 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants