예제 #1
0
 internal CriaFuncionario(string nome, string nif, TipoFuncionario tipoFuncionario, IEnumerable <Contacto> contactos, int versao)
 {
     Contract.Requires(!string.IsNullOrEmpty(nome), Msg.String_nao_pode_ser_nula);
     Contract.Requires(!string.IsNullOrEmpty(nif), Msg.String_nao_pode_ser_nula);
     Contract.Requires(tipoFuncionario != null, Msg.Tipo_funcionario_tem_de_ser_definido);
     Contract.Requires(versao >= 0, Msg.Numero_superior_0);
     Contract.Ensures(!string.IsNullOrEmpty(_nome), Msg.String_nao_pode_ser_nula);
     Contract.Ensures(!string.IsNullOrEmpty(_nif), Msg.String_nao_pode_ser_nula);
     Contract.Ensures(_tipoFuncionario != null, Msg.Tipo_funcionario_tem_de_ser_definido);
     Contract.Ensures(_versao >= 0, Msg.Numero_superior_0);
     if (!VerificadorNif.NifValido(nif))
     {
         throw new InvalidOperationException(Msg.Nif_invalido);
     }
     _nome            = nome;
     _nif             = nif;
     _tipoFuncionario = tipoFuncionario;
     _contactos       = contactos;
     _versao          = versao;
 }
        public ModificaDadosGeraisFuncionario(int id, int version, string nome, string nif, TipoFuncionario tipoFuncionario)
        {
            Contract.Requires(id > 0);
            Contract.Requires(version > 0);
            Contract.Requires(!string.IsNullOrEmpty(nome));
            Contract.Requires(!string.IsNullOrEmpty(nif));
            Contract.Requires(tipoFuncionario != null);
            Contract.Ensures(_id > 0);
            Contract.Ensures(_version > 0);
            Contract.Ensures(!string.IsNullOrEmpty(_nome));
            Contract.Ensures(!string.IsNullOrEmpty(_nif));
            Contract.Ensures(_tipoFuncionario != null);

            if (!VerificadorNif.NifValido(nif))
            {
                throw new InvalidOperationException(Msg.Nif_invalido);
            }

            _id              = id;
            _version         = version;
            _nome            = nome;
            _nif             = nif;
            _tipoFuncionario = tipoFuncionario;
        }