public void AtualizarDocumento(Documento documento, int idServico)
        {
            try
            {
                this._queryParams.Clear();

                this._queryParams["Servico_ID"] = idServico;
                this._queryParams["Documento"] = documento;

                this._repository.AtualizarDocumento(this._queryParams);
            }
            catch (Exception ex) { throw ex; }
        }
        public Documento SelecionarDocumento(IDictionary<string, object> _queryParams)
        {
            DocumentoModelo _modelo = new DocumentoModelo();
            Documento _documento = new Documento();
            List<DocumentoModelo> _documentos = new List<DocumentoModelo>();

            try
            {
                DbCommand _cmd;
                Database _db = DbConn.CreateDB();
                _cmd = _db.GetStoredProcCommand(String.Format("proc_documento_servico_usuario_get"));

                _db.AddInParameter(_cmd, "@IdUsuario", DbType.Int32, int.Parse(_queryParams["Usuario_ID"].ToString()));
                _db.AddInParameter(_cmd, "@IdServico", DbType.Int32, int.Parse(_queryParams["Servico_ID"].ToString()));
                _db.AddInParameter(_cmd, "@IdDocumento", DbType.Int32, int.Parse(_queryParams["Documento_ID"].ToString()));
                //_db.AddInParameter(_cmd, "@IdStatus", DbType.Int32, int.Parse(_queryParams["Status_ID"].ToString()));

                using (IDataReader _dr = _db.ExecuteReader(_cmd))
                {
                    while (_dr.Read())
                    {
                        _documento.Modelo = ConverteBaseDocumento(_dr);
                        _documento.ID = int.Parse(_dr["IdDocumento"].ToString());

                        _documento.Modelo.Campos = new List<CampoModelo>();

                        //TODO: Criar Proc para retornar os campos e metodo para carregar esta propriedade (Ja retornar o doctocampos e o modelocapo)
                    }
                }

                if (_documento == null) { throw new Erro("Documento não localizado."); }

                return _documento;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public Documento GetDocumentoVincular(int idUsuario, int idServico)
        {
            try
            {
                Documento _documento = new Documento();

                this._queryParams.Clear();
                this._queryParams["Usuario_ID"] = idUsuario;
                this._queryParams["Servico_ID"] = idServico;

                //TODO: Atualizar a data de atualização do doc e pegar apenas os que estiverem com data de atualização maior que 10 minutos
                _documento = this._repository.ListarDocumentosStatus(this._queryParams).Where(d => d.StatusDocumento == 3000).FirstOrDefault();

                if (_documento != null)
                {
                    this._queryParams.Clear();
                    this._queryParams["Usuario_ID"] = idUsuario;
                    this._queryParams["Documento_ID"] = _documento.ID;
                    this._queryParams["Servico_ID"] = idServico;

                    //_documento.Perguntas = this._repository.ListarPerguntas(int.Parse(_queryParams["Servico_ID"].ToString()), _documento.Modelo.ID);

                    _documento.Modelo.Campos.AddRange(_repository.SelecionarDocumentoCampos(_queryParams).Where(c => c.Digita).ToList<CampoModelo>());
                    _documento.Arquivos.AddRange(_repository.SelecionarDocumentoImagens(_queryParams).ToList<DocumentoImagem>());

                    this._queryParams.Clear();
                    this._queryParams["Documento"] = _documento;
                    this._queryParams["Servico_ID"] = idServico;
                    _repository.AtualizarDocumento(_queryParams);
                }
                else
                {
                    _documento = new Documento();
                }

                return _documento;

            }
            catch (Exception ex) { throw ex; }
        }
        public Documento SelecionaDocumentoDigitar(int idUsuario, int idServico, int idDocumento)
        {
            try
            {
                Documento _documento = new Documento();

                this._queryParams.Clear();
                this._queryParams["Usuario_ID"] = idUsuario;
                //this._queryParams["Origem_ID"] = idOrigem;
                this._queryParams["Servico_ID"] = idServico;

                //TODO: Atualizar a data de atualização do doc e pegar apenas os que estiverem com data de atualização maior que 10 minutos
                _documento = this._repository.ListarDocumentosStatus(this._queryParams).Where(d => (d.StatusDocumento == 1000 || d.StatusDocumento == 1020 || d.StatusDocumento == 1010) && d.ID == idDocumento).FirstOrDefault();

                if (_documento != null)
                {
                    this._queryParams.Clear();
                    this._queryParams["Usuario_ID"] = idUsuario;
                    this._queryParams["Documento_ID"] = _documento.ID;
                    this._queryParams["Servico_ID"] = idServico;

                    _documento.Modelo.Campos.AddRange(_repository.SelecionarDocumentoCampos(_queryParams).Where(c => c.Digita).ToList<CampoModelo>());
                    _documento.Arquivos.AddRange(_repository.SelecionarDocumentoImagens(_queryParams).ToList<DocumentoImagem>());

                    this._queryParams.Clear();
                    this._queryParams["Servico_ID"] = idServico;
                    this._queryParams["Documento"] = _documento;
                    _repository.AtualizarDocumento(_queryParams);
                }
                else
                {
                    _documento = new Documento();
                }

                return _documento;

            }
            catch (Exception ex) { throw ex; }
        }
        private void ConfirgurarEmail(int idServico)
        {
            DocumentoModelo _modelo = new DocumentoModelo();
            Documento _documento = new Documento();
            List<Documento> _documentos = new List<Documento>();

            try
            {
                DbCommand _cmd;
                Database _db = DbConn.CreateDB();
                _cmd = _db.GetStoredProcCommand(String.Format("Get_Configuracao_Email"));

                _db.AddInParameter(_cmd, "@idServico", DbType.Int32, idServico);

                using (IDataReader _dr = _db.ExecuteReader(_cmd))
                {
                    while (_dr.Read())
                    {
                        this.Remetente = _dr["Remetente"].ToString();
                        this.Usuario = _dr["Usuario"].ToString();
                        this.Senha = _dr["Senha"].ToString();
                        this.Servidor_Email = _dr["Servidor_Email"].ToString();
                        this.Porta = int.Parse(_dr["Porta"].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro COnfigurarEmail, " + ex.Message);
            }
        }