示例#1
0
        /// <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;
                    }
                }
            }
        }