using System; // // Table Module // public enum EntityType { Person = 0, Organization = 1 } public class Contacto { int CreatePerson(string name, string nif, string addr1, string addr2, string local, string postal, DateTime dateOfBirth, string email); int CreateOrganization(string name, string nif, string addr1, string addr2, string local, string postal, string email); // tb admisivel mas necessitava de validação do parametro dateOfBirth ir null se typ == EntityType.Organization int CreateEntity(EntityType typ, string name, string nif, string addr1, string addr2, string local, string postal, DateTime dateOfBirth, string email); void UpdatePerson(int id, string name, string nif, string addr1, string addr2, string local, string postal, DateTime dateOfBirth, string email); void UpdateOrganization(int id, string name, string nif, string addr1, string addr2, string local, string postal, string email); // tb admisivel mas necessitava de validação do parametro dateOfBirth ir null se campo Tipo do registo fosse 1 (oragnização) void UpdateEntity(int id, string name, string nif, string addr1, string addr2, string local, string postal, string email, DateTime dateOfBirth); // deve lançar excepção se d referir uma organização int GetAgeOfPerson(int id); DataSet GetForecomeBirthdays(int nDaysToCome); DataSet GetByName(string namePattern); DataSet GetByAddress(string addrPattern); DataSet GetByNIF(string nifPattern); DataSet GetByBirthDate(int? year, int? month, int? day); } // // Table Data Gateway // public class Contacto { int CreateEntity(EntityType typ, string name, string nif, string addr1, string addr2, string local, string postal, DateTime dateOfBirth, string email); void UpdateEntity(int id, string name, string nif, string addr1, string addr2, string local, string postal, string email, DateTime dateOfBirth); DataSet GetByName(string namePattern); DataSet GetByAddress(string addrPattern); DataSet GetByNIF(string nifPattern); DataSet GetByBirthDate(int? year, int? month, int? day); DataSet GetById(int id); DataSet GetByBirthdays(int startDay, int startMonth, int endDay, int endMonth); }