Royal-Code / EnterprisePatterns

Enterprise patterns implementations
GNU Affero General Public License v3.0
1 stars 1 forks source link

Rever Commands #111

Open eglauko opened 9 months ago

eglauko commented 9 months ago

É necessário repensar nos comandos.

Uma idéia era implementar o SmartMapper com contextos.

Seria bom mover para um repositório a parte ???

Idéias iniciais:

RoyalCode.Commands.Abstractions

eglauko commented 5 months ago

Idéia para context

// classe base para contexto
public abstract class ContextBase<TData>
{
    TData Data { get; }
}

// classe base para contexto com source generator, 
// onde a herda deve ser partial e é gerado as propriedades automaticamente.
public abstract class ContextBase<TData, TEntity> : ContextBase<TData> { }
// serviço que processa o contexto
public interface IContextProcessor<TData, TContext>
{
    Task<OperationResult<TContext>> ProccessAsync(TData data);

    Task<OperationResult> ProccessAsync(TData data, TContext context);
}

Depois o contexto pode ser mapeado via smart mapper, onde automaticamente os dados de Data são mapeados intenamente. Poderá haver comandos para tratar TData com o TContext.

Como será o processor ainda é necessário definir.