Beispiel #1
0
        private Resposta responderArquivoEstatico(Solicitacao objSolicitacao)
        {
            if (objSolicitacao == null)
            {
                return(null);
            }

            if (string.IsNullOrEmpty(objSolicitacao.strPagina))
            {
                return(null);
            }

            var objResposta = this.responderArquivoEstaticoCss(objSolicitacao);

            if (objResposta != null)
            {
                return(objResposta);
            }

            objResposta = this.responderArquivoEstaticoCss(objSolicitacao);

            if (objResposta != null)
            {
                return(objResposta);
            }

            if (STR_GET_SCRIPT.Equals(objSolicitacao.getStrGetValue("method")))
            {
                return(this.responderArquivoEstaticoGetScript(objSolicitacao));
            }

            return(this.responderArquivoEstatico(objSolicitacao, objSolicitacao.strPagina));
        }
Beispiel #2
0
        protected Resposta responderArquivoEstatico(Solicitacao objSolicitacao, string dirArquivo)
        {
            if (string.IsNullOrWhiteSpace(dirArquivo))
            {
                return(null);
            }

            foreach (var arq in this.lstArqEstatico)
            {
                if (arq == null)
                {
                    continue;
                }

                if (string.IsNullOrEmpty(arq.dirWeb))
                {
                    continue;
                }

                if (!arq.dirWeb.ToLower().Equals(dirArquivo.ToLower()))
                {
                    continue;
                }

                return(this.responderArquivoEstatico(objSolicitacao, arq));
            }

            return(this.responderArquivoEstaticoNaoEncontrado(objSolicitacao));
        }
Beispiel #3
0
        /// <summary>
        /// Este método é disparado a acada vez que o cliente fizer uma solicitação de algum recurso
        /// a este WEB server.
        /// </summary>
        /// <param name="objSolicitacao">
        /// Classe que trás todas as informações da solicitação que foi encaminhada pelo servidor.
        /// <para>
        /// Uma das propriedades mais importantes que deve ser verificada é a <see
        /// cref="Solicitacao.dttUltimaModificacao"/>, para evitar que recursos em cache sejam
        /// enviados desnecessariamente para o cliente.
        /// </para>
        /// </param>
        /// <returns></returns>
        public override Resposta responder(Solicitacao objSolicitacao)
        {
            if (objSolicitacao == null)
            {
                return(null);
            }

            if (string.IsNullOrEmpty(objSolicitacao.strPaginaCompleta))
            {
                return(null);
            }

            if (objSolicitacao.strPaginaCompleta.ToLower().StartsWith("/res/"))
            {
                return(this.responderArquivoEstatico(objSolicitacao));
            }

            switch (objSolicitacao.strPagina)
            {
            case URL_DATA_BASE_FILE_DOWNLOAD:
                return(this.responderDbFileDownload(objSolicitacao));
            }

            return(null);
        }
Beispiel #4
0
        private Resposta responderArquivoEstaticoNaoEncontrado(Solicitacao objSolicitacao)
        {
            Log.i.erro("Arquivo estático ({0}) não encontrado.", objSolicitacao.strPaginaCompleta);

            return(new Resposta(objSolicitacao)
            {
                intStatus = 404
            });
        }
Beispiel #5
0
        private Resposta responderArquivoEstatico(Solicitacao objSolicitacao, ArquivoEstatico arq)
        {
            if (objSolicitacao == null)
            {
                return(null);
            }

            if (arq == null)
            {
                return(null);
            }

            return(new Resposta(objSolicitacao).addArquivo(arq));
        }
Beispiel #6
0
        protected virtual void responder(Solicitacao objSolicitacao)
        {
            try
            {
                if (!objSolicitacao.validar())
                {
                    return;
                }

                this.responder(this.srv.responder(objSolicitacao));
            }
            catch (Exception ex)
            {
                this.responderErro(objSolicitacao, ex);
            }
        }
Beispiel #7
0
        protected virtual void responderErro(Solicitacao objSolicitacao, Exception ex)
        {
            if (ex == null)
            {
                return;
            }

            var objResposta = new Resposta(objSolicitacao);

            objResposta.addHtml(new PagError(ex));

            objResposta.intStatus = Resposta.INT_STATUS_CODE_500_INTERNAL_ERROR;

            this.responder(objResposta);

            Log.i.erro(ex);
        }
Beispiel #8
0
        private Resposta responderArquivoEstaticoCss(Solicitacao objSolicitacao)
        {
            if ((this.objUiManager != null) && this.objUiManager.getBooExportarCss())
            {
                return(null);
            }

            if (CssMain.SRC_CSS.Equals(objSolicitacao.strPagina))
            {
                return(this.responderArquivoEstatico(objSolicitacao, CssMain.i));
            }

            if (CssPrint.SRC_CSS.Equals(objSolicitacao.strPagina))
            {
                return(this.responderArquivoEstatico(objSolicitacao, CssPrint.i));
            }

            return(null);
        }
Beispiel #9
0
        private Resposta responderArquivoEstaticoGetScript(Solicitacao objSolicitacao)
        {
            if (objSolicitacao == null)
            {
                return(this.responderArquivoEstaticoNaoEncontrado(objSolicitacao));
            }

            string strJsClass = objSolicitacao.getStrGetValue("class");

            if (string.IsNullOrEmpty(strJsClass))
            {
                return(this.responderArquivoEstaticoNaoEncontrado(objSolicitacao));
            }

            ArquivoEstatico arqJq = this.getArqJs(strJsClass);

            if (arqJq == null)
            {
                return(this.responderArquivoEstaticoNaoEncontrado(objSolicitacao));
            }

            return(new Resposta(objSolicitacao).addArquivo(arqJq));
        }
Beispiel #10
0
 public Resposta(Solicitacao objSolicitacao)
 {
     this.objSolicitacao = objSolicitacao;
 }
Beispiel #11
0
 /// <summary>
 /// Este método é disparado a cada nova solicitação do cliente recebida.
 /// </summary>
 /// <param name="objSolicitacao">
 /// Objeto que encapsula a solicitação que foi enviada pelo usuário.
 /// </param>
 /// <returns>Retorna o objeto contendo a responsta para o cliente.</returns>
 public abstract Resposta responder(Solicitacao objSolicitacao);
Beispiel #12
0
        private Resposta responderDbFileDownload(Solicitacao objSolicitacao)
        {
            if (AppWebBase.i == null)
            {
                return(null);
            }

            if (AppWebBase.i.dbe == null)
            {
                return(null);
            }

            if (objSolicitacao == null)
            {
                return(null);
            }

            if (objSolicitacao.objUsuario == null)
            {
                return(null);
            }

            if (!objSolicitacao.objUsuario.booLogado)
            {
                return(new Resposta(objSolicitacao).addHtml("Usuário não autorizado.")); // TODO: Criar uma página de "sem permissão de acesso ao recurso".
            }

            int intRegistroId = objSolicitacao.getIntGetValue("registro_id");

            if (intRegistroId < 1)
            {
                return(null);
            }

            string strTblNome = objSolicitacao.getStrGetValue("tbl_web_nome");

            if (string.IsNullOrEmpty(strTblNome))
            {
                return(null);
            }

            TabelaBase tbl = AppWebBase.i.dbe[strTblNome];

            if (tbl == null)
            {
                return(null);
            }

            tbl.recuperar(intRegistroId);

            if (!intRegistroId.Equals(tbl.clnIntId.intValor))
            {
                return(null);
            }

            var arqDownload = new ArquivoEstatico();

            //arqDownload.arrBteConteudo = (tbl as ITblArquivo).getClnArq().arrBteValor;
            //arqDownload.dttAlteracao = (tbl as ITblArquivo).getClnDttArquivoModificacao().dttValor;
            //arqDownload.strNome = (tbl as ITblArquivo).getClnStrArquivoNome().strValor;

            // TODO: Refazer.

            tbl.liberarThread();

            return(this.responderArquivoEstatico(objSolicitacao, arqDownload));
        }