示例#1
0
 protected override void OnDisconnect(Interlocutor interlocutor)
 {
     if (interlocutor == Interlocutor.Runtime)
     {
         allowConnection = true;
     }
 }
示例#2
0
        private bool cancelarEmail(Interlocutor objInterlocutor, EmailRegistroDominio objEmailRegistro, EmailRegistroDominio objEmailRegistroLocal)
        {
            if (objEmailRegistroLocal == null)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(objEmailRegistroLocal.strEmail))
            {
                return(false);
            }

            if (string.IsNullOrEmpty(objEmailRegistroLocal.dirDocumentacao))
            {
                return(false);
            }

            if (!objEmailRegistro.strEmail.ToLower().Equals(objEmailRegistroLocal.strEmail.ToLower()))
            {
                return(false);
            }

            if (!objEmailRegistro.dirDocumentacao.ToLower().Equals(objEmailRegistroLocal.dirDocumentacao.ToLower()))
            {
                return(false);
            }

            this.lstObjEmailRegistro.Remove(objEmailRegistroLocal);

            this.salvarArquivo();

            objInterlocutor.objData = string.Format("O email \"{0}\" não irá mais receber atualizações da documentação \"{1}\".", objEmailRegistroLocal.strEmail, objEmailRegistroLocal.strDocumentacaoTitulo);

            return(true);
        }
示例#3
0
        private void verificarFavorito(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            if (objInterlocutor.objData == null)
            {
                return;
            }

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

            if (objSolicitacao.objUsuario.intId < 1)
            {
                return;
            }

            TabelaBase tbl = this.dbe[objInterlocutor.objData.ToString()];

            if (tbl == null)
            {
                return;
            }

            objInterlocutor.objData = TblFavorito.i.verificarFavorito(objSolicitacao.objUsuario.intId, tbl.sqlNome);
        }
示例#4
0
文件: ClienteWs.cs 项目: digovc/Web
        private void processarMensagemText(Frame fme)
        {
            if (string.IsNullOrEmpty(fme.strMensagem))
            {
                return;
            }

            Interlocutor objInterlocutor = null;

            try
            {
                objInterlocutor = Json.i.fromJson <Interlocutor>(fme.strMensagem);
            }
            catch (Exception)
            {
                this.processarMensagem(fme.strMensagem);
            }

            if (objInterlocutor == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(objInterlocutor.strMetodo))
            {
                return;
            }

            if (this.srvWs.processarMensagem(this, objInterlocutor))
            {
                return;
            }

            this.processarMensagem(objInterlocutor);
        }
示例#5
0
        private TContract CreateProxyContract(Transporter light)
        {
            var memebers   = ProxyContractFactory.ParseContractInterface(typeof(TContract));
            var dispatcher = _contractBuilder.ReceiveDispatcherFactory();

            var outputMessages = memebers.GetMethods().Select(m => new MessageTypeInfo
            {
                ReturnType    = m.Value.ReturnType,
                ArgumentTypes = m.Value.GetParameters().Select(p => p.ParameterType).ToArray(),
                MessageId     = (short)m.Key
            });

            var inputMessages = memebers.GetProperties().Select(m => new MessageTypeInfo
            {
                ArgumentTypes = ReflectionHelper.GetDelegateInfoOrNull(m.Value.PropertyType).ParameterTypes,
                ReturnType    = ReflectionHelper.GetDelegateInfoOrNull(m.Value.PropertyType).ReturnType,
                MessageId     = (short)m.Key
            });

            var messenger = new Messenger(
                light,
                SerializerFactory.CreateDefault(_contractBuilder.UserSerializationRules.ToArray()),
                DeserializerFactory.CreateDefault(_contractBuilder.UserDeserializationRules.ToArray()),
                outputMessages: outputMessages.ToArray(),
                inputMessages: inputMessages.ToArray()
                );

            var interlocutor = new Interlocutor(messenger, dispatcher, _contractBuilder.MaxAnswerTimeoutDelay);

            var contract = ProxyContractFactory.CreateProxyContract <TContract>(interlocutor);

            return(contract);
        }
示例#6
0
 public BaseProxy(string address, IProxyObjectFactory factory, ILogger logger, Interlocutor owner)
 {
     this.address = address;
     this.factory = factory;
     this.Logger  = logger;
     this.owner   = owner;
 }
示例#7
0
        private void pesquisar(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            var objPesquisa = objInterlocutor.getObjJson <PesquisaInterlocutor>();

            if (objPesquisa == null)
            {
                throw new NullReferenceException();
            }

            if (string.IsNullOrEmpty(objPesquisa.sqlTabelaNome))
            {
                throw new NullReferenceException();
            }

            var tbl = this.dbe[objPesquisa.sqlTabelaNome];

            if (tbl == null)
            {
                throw new Exception("Tabela não encontrada.");
            }

            // TODO: Validar permissão de acesso a esses dados.

            objInterlocutor.addJson(tbl.pesquisar(objPesquisa.arrFil) ?? null);
        }
 protected override void OnDisconnect(Interlocutor interlocutor)
 {
     if (interlocutor == Interlocutor.Client)
     {
         ClientDisconnected?.Invoke();
     }
 }
示例#9
0
文件: SrvAjaxBase.cs 项目: digovc/Web
        protected Resposta responderErro(Solicitacao objSolicitacao, Exception ex, Interlocutor objInterlocutor)
        {
            if (objSolicitacao == null)
            {
                return(null);
            }

            if (objInterlocutor == null)
            {
                objInterlocutor = new Interlocutor();
            }

            objInterlocutor.strErro = "Erro desconhecido.";

            if (ex != null)
            {
                objInterlocutor.strErro = ex.Message;
            }

            var objResposta = new Resposta(objSolicitacao);

            objResposta.addJson(objInterlocutor);

            this.addAcessControl(objResposta, objInterlocutor);

            Log.i.erro("Erro no servidor AJAX ({0}): {1}", this.strNome, objInterlocutor.strErro);

            return(objResposta);
        }
示例#10
0
        private void favoritarTabela(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            if (objSolicitacao.objUsuario == null)
            {
                return;
            }

            if (!objSolicitacao.objUsuario.booLogado)
            {
                return;
            }

            if (objInterlocutor.objData == null)
            {
                return;
            }

            TabelaBase tbl = this.dbe[objInterlocutor.objData.ToString()];

            if (tbl == null)
            {
                return;
            }

            TblFavorito.i.favoritar(objSolicitacao, objInterlocutor, tbl);
        }
示例#11
0
        private void abrirJnlTag(Solicitacao objSolicitacao, Interlocutor objInterlocutor, TabelaWeb tblWeb)
        {
            if (tblWeb == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(tblWeb.strNome))
            {
                return;
            }

            TabelaBase tbl = this.dbe[tblWeb.strNome];

            if (tbl == null)
            {
                return;
            }

            tbl = tbl.tblPrincipal;

            JnlTag jnlTag = new JnlTag();

            jnlTag.tbl    = tbl;
            jnlTag.tblWeb = tblWeb;

            objInterlocutor.objData = jnlTag.toHtml();
        }
示例#12
0
        private void abrirConsulta(Interlocutor objInterlocutor, Solicitacao objSolicitacao, TabelaWeb tblWeb)
        {
            if (tblWeb == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(tblWeb.strNome))
            {
                return;
            }

            TabelaBase tbl = this.dbe[tblWeb.strNome];

            if (tbl == null)
            {
                return;
            }

            if (!this.validarAbrirConsulta(objSolicitacao, objInterlocutor, tblWeb, tbl))
            {
                return;
            }

            objInterlocutor.objData = new JnlConsulta(tbl).toHtml();
        }
示例#13
0
文件: SrvAjaxBase.cs 项目: digovc/Web
        private Resposta responderUploadFile(Solicitacao objSolicitacao)
        {
            var objInterlocutor = new Interlocutor();

            var objResposta = new Resposta(objSolicitacao);

            this.addAcessControl(objResposta, null);

            if (objSolicitacao == null)
            {
                objInterlocutor.strErro = "Erro ao processar arquivo.";

                return(objResposta.addJson(objInterlocutor));
            }

            if (objSolicitacao.objUsuario == null)
            {
                objInterlocutor.strErro = "Usuário desconhecido não pode fazer upload de arquivos.";

                return(objResposta.addJson(objInterlocutor));
            }

            if (!objSolicitacao.objUsuario.booLogado)
            {
                objInterlocutor.strErro = "Usuário deslogado não pode fazer upload de arquivos.";

                return(objResposta.addJson(objInterlocutor));
            }

            objSolicitacao.objUsuario.addArqUpload(new ArquivoUpload(objSolicitacao));

            objInterlocutor.objData = "Arquivo recebido com sucesso.";

            return(objResposta.addJson(objInterlocutor));
        }
示例#14
0
        protected override bool responder(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            if (base.responder(objSolicitacao, objInterlocutor))
            {
                return(true);
            }

            if (objInterlocutor == null)
            {
                return(false);
            }

            switch (objInterlocutor.strMetodo)
            {
            case STR_METODO_EMAIL_DESINSCREVER:
                this.cancelarEmail(objInterlocutor);
                return(true);

            case STR_METODO_EMAIL_REGISTRAR:
                this.registrarEmail(objInterlocutor);
                return(true);
            }

            return(false);
        }
示例#15
0
文件: TblFavorito.cs 项目: digovc/Web
        internal void pesquisarFavorito(int intUsuarioId, Interlocutor objInterlocutor)
        {
            if (intUsuarioId < 1)
            {
                return;
            }

            if (objInterlocutor == null)
            {
                return;
            }

            List <FavoritoDominio> lstObjFavorito = this.pesquisarDominio <FavoritoDominio>(this.clnIntUsuarioId, intUsuarioId);

            if (lstObjFavorito == null)
            {
                return;
            }

            if (lstObjFavorito.Count < 8)
            {
                objInterlocutor.objData = lstObjFavorito;
            }
            else
            {
                objInterlocutor.objData = lstObjFavorito.Take(8);
            }
        }
示例#16
0
 private void UpdatePlacement(Interlocutor interlocutor)
 {
     var targetPosition = InterlocutorPosition(interlocutor);
     var actualPosition = Interlocutors.IndexOf(interlocutor);
     if (targetPosition == actualPosition) return;
     RemoveInterlocutor(interlocutor);
     AddInterlocutor(interlocutor);
 }
示例#17
0
 protected override void OnDisconnect(Interlocutor interlocutor)
 {
     if (interlocutor == Interlocutor.Runtime)
     {
         RuntimeDisconnected?.Invoke();
         IsConnected = false;
     }
 }
示例#18
0
文件: ClienteWs.cs 项目: digovc/Web
        protected virtual void processarMensagemWelcome(Interlocutor objInterlocutor)
        {
            objInterlocutor.strMetodo = STR_METODO_WELCOME;

            this.enviar(objInterlocutor);

            this.srvWs.processarMensagemWelcome(this, objInterlocutor);
        }
示例#19
0
        private void salvarRegistro(Solicitacao objSolicitacao, Interlocutor objInterlocutor, TabelaWeb tblWeb)
        {
            if (objSolicitacao == null)
            {
                throw new NullReferenceException();
            }

            if (objSolicitacao.objUsuario == null)
            {
                throw new NullReferenceException();
            }

            if (!objSolicitacao.objUsuario.booLogado)
            {
                throw new SecurityException();
            }

            if (objSolicitacao.objUsuario.intId < 1)
            {
                throw new SecurityException();
            }

            if (tblWeb == null)
            {
                throw new NullReferenceException();
            }

            if (tblWeb.arrCln == null)
            {
                throw new NullReferenceException();
            }

            var tbl = this.dbe[tblWeb.strNome];

            if (tbl == null)
            {
                throw new NullReferenceException();
            }

            if (!this.validarSalvarRegistro(objSolicitacao, objInterlocutor, tblWeb, tbl))
            {
                return;
            }

            // TODO: Reavaliar a necessidade de carregar os valores destas colunas.
            tblWeb.getCln(tbl.clnDttAlteracao.sqlNome).dttValor          = DateTime.Now;
            tblWeb.getCln(tbl.clnIntUsuarioAlteracaoId.sqlNome).intValor = objSolicitacao.objUsuario.intId;

            if (0.Equals(tblWeb.getCln(tbl.clnIntId.sqlNome).intValor))
            {
                tblWeb.getCln(tbl.clnDttCadastro.sqlNome).dttValor          = DateTime.Now;
                tblWeb.getCln(tbl.clnIntUsuarioCadastroId.sqlNome).intValor = objSolicitacao.objUsuario.intId;
            }

            tbl.salvarWeb(tblWeb);

            tbl.liberarThread();
        }
示例#20
0
        public void DummyBinarySearch_Minus_Test()
        {
            var interviewee = new Interlocutor();

            interviewee.SetSearchStrategy(new SimpleBinarySearch());
            interviewee.SearchFigure(Rating.ToHigh);

            Assert.AreEqual(-1 * Decimal.MaxValue / 2m, interviewee.FoundFigure());
        }
示例#21
0
        public void IsItZeroSearch_Test()
        {
            var interviewee = new Interlocutor();

            interviewee.SetSearchStrategy(new IsItZeroSearch());
            interviewee.SearchFigure(Rating.Start);

            Assert.AreEqual(0, interviewee.FoundFigure());
        }
示例#22
0
        private void pesquisarTable(Interlocutor objInterlocutor, TabelaBase tbl, TabelaWeb tblWeb, DataTable tblData)
        {
            var tagTable = new TableHtml();

            tagTable.tbl     = tbl.viwPrincipal;
            tagTable.tblData = tblData;

            objInterlocutor.objData = tagTable.toHtml();
        }
示例#23
0
 private int InterlocutorPosition(Interlocutor interlocutor)
 {
     var interlocutors = Interlocutors.AsEnumerable();
     if (!interlocutors.Contains(interlocutor))
     {
         interlocutors = interlocutors.Concat(new[] { interlocutor });
     }
     return interlocutors.OrderBy(contact => contact.State).ThenBy(contact => contact.Name).ToList().IndexOf(interlocutor);
 }
示例#24
0
文件: ClienteWs.cs 项目: digovc/Web
        /// <summary>
        /// Envia uma mensagem contendo a estrutura do interlocutor em JSON para este cliente.
        /// </summary>
        /// <param name="objInterlocutor">
        /// Interlocutor que será serializado e enviado para este cliente.
        /// </param>
        public void enviar(Interlocutor objInterlocutor)
        {
            if (objInterlocutor == null)
            {
                return;
            }

            this.enviar(Json.i.toJson(objInterlocutor));
        }
 public void startConversation(GameObject interlocutor)
 {
     inter = interlocutor.GetComponent <Interlocutor>();
     dialogCanvas.SetActive(true);
     conversationContinues = true;
     FindObjectOfType <Controller>().freezePlayer(true);
     dialogTreeId = 0;
     dialogState  = 0;
     quoteState   = 0;
 }
示例#26
0
        private bool carregarArquivoValidar(Solicitacao objSolicitacao, Interlocutor objInterlocutor, TabelaWeb tblWeb, TabelaBase tbl)
        {
            if (this.objSolicitacao == null)
            {
                return(false);
            }

            if (this.objSolicitacao.frmData == null)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(this.strNome))
            {
                return(false);
            }

            if (this.arrBteConteudo == null)
            {
                return(false);
            }

            if (this.arrBteConteudo.Length < 1)
            {
                return(false);
            }

            if (!tblWeb.strNome.Equals(this.strTblWebNome))
            {
                return(false);
            }

            if (tblWeb.dttUpload.Equals(this.dttUpload))
            {
                return(false);
            }

            if (string.IsNullOrEmpty(this.strClnWebNome))
            {
                return(false);
            }

            if (this.arrBteConteudo == null)
            {
                return(false);
            }

            if (this.arrBteConteudo.Length < 1)
            {
                return(false);
            }

            return(true);
        }
示例#27
0
        private void abrirConsulta(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            if (objInterlocutor.objData == null)
            {
                return;
            }

            TabelaWeb tblWeb = Json.i.fromJson <TabelaWeb>(objInterlocutor.objData.ToString());

            this.abrirConsulta(objInterlocutor, objSolicitacao, tblWeb);
        }
示例#28
0
        private void carregarTbl(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            TabelaBase tbl = this.dbe[objInterlocutor.objData.ToString()];

            if (tbl == null)
            {
                return;
            }

            objInterlocutor.objData = Json.i.toJson(tbl.tblWeb);
        }
示例#29
0
        private void pesquisarOld(Solicitacao objSolicitacao, Interlocutor objInterlocutor)
        {
            if (string.IsNullOrEmpty(objInterlocutor.objData.ToString()))
            {
                return;
            }

            var tblWeb = Json.i.fromJson <TabelaWeb>(objInterlocutor.objData.ToString());

            this.pesquisarOld(objSolicitacao, objInterlocutor, tblWeb);
        }
示例#30
0
        internal bool carregarArquivo(Solicitacao objSolicitacao, Interlocutor objInterlocutor, TabelaWeb tblWeb, TabelaBase tbl)
        {
            if (!this.carregarArquivoValidar(objSolicitacao, objInterlocutor, tblWeb, tbl))
            {
                return(false);
            }

            // TODO: Refazer.

            return(true);
        }