document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2. using System.Collections.Generic;
  3. using Metavision.Infra.Data;
  4.  
  5. namespace Metavision.Infra.Tests
  6. {
  7.     public class RepositorioPessoas : Repositorio<Pessoa>
  8.     {
  9.         public RepositorioPessoas(IUnitOfWork unitOfWork)
  10.             : base(unitOfWork)
  11.         {
  12.         }
  13.  
  14.         public override void AddEntity(Pessoa entity)
  15.         {
  16.             //efetuar alguma ação antes de adicionar uma entidade no repositório
  17.             entity.Data = DateTime.Now;
  18.  
  19.             base.AddEntity(entity);
  20.         }
  21.  
  22.         public override void RemoveEntity(Pessoa entity)
  23.         {
  24.             //efetuar alguma ação antes de remover uma entidade no repositório
  25.             entity.Enderecos.Clear();
  26.  
  27.             base.RemoveEntity(entity);
  28.         }
  29.  
  30.         public override IEnumerable<Pessoa> GetAll(Func<Pessoa, bool> specification = null)
  31.         {
  32.             //efetuar alguma ação antes de recuperar todos os objetos
  33.             if (specification == null)
  34.                 specification = pessoa => pessoa.Id > 0;
  35.  
  36.             return base.GetAll(specification);
  37.         }
  38.  
  39.         /* Alterando a Factory padrão do repositório */
  40.         public override Func<Pessoa> Factory
  41.         {
  42.             get
  43.             {
  44.                 return () => new Pessoa { Data = DateTime.Now };
  45.             }
  46.         }
  47.     }
  48. }
  49.  
');