/// <summary> /// Cadastrar um novo colaborador /// </summary> /// <param name="dto">Objeto Data-Transport</param> /// <param name="statusCode">Variável de saído do código de status</param> /// <param name="dados">Variável de saída da mensagem</param> public void CadastrarColaborador(UsuarioDto dto, out int statusCode, out object dados) { // Verificar DocumentoHabilitado DocumentoHabilitado documento = _docHabDomain.ObterPorDocumento(dto.CpfCnpj); if (documento == null || !documento.Ativo) { statusCode = StatusCodes.Status404NotFound; dados = new { sucesso = false, mensagem = "Entre em contato com RH" }; } else { // Verificar se o usuário já está cadastrado Usuario usuario = _dmn.ObterPorDocumento(dto.CpfCnpj); if (usuario != null) { statusCode = StatusCodes.Status400BadRequest; dados = new { sucesso = false, mensagem = "Usuário já cadastrado" }; } else { Usuario entidade = ConverterDtoEmEntidade(dto); if (!entidade.EstaValido()) { dados = new { sucesso = false, mensagem = entidade.ValidationResult.ToString() }; statusCode = StatusCodes.Status400BadRequest; } else { _dmn.Adicionar(entidade); _uow.Efetivar(); dados = new { sucesso = true, mensagem = new { Id = entidade.Id } }; statusCode = StatusCodes.Status200OK; } } } }