none
2 usuários na mesma tela, separando dados. RRS feed

  • Pergunta

  • Amigos,

    Tenho uma tela no qual quando 2 usuários estão realizando os mesmos processos, um consegue visualizar os dados do outros. Qual a melhor forma de realizar esta divisão?

    Tenho 2 usuários na mesma tela e ao inserir os dados, eles previamente vão para o gridview e o outro usuários consegue ver, o gridview dele também é preenchido. ALguma ideia?

    Att,

    Caio Souza.

    quarta-feira, 17 de julho de 2013 16:13

Todas as Respostas

  • Olha isso já acontece normalmente como funcionalidade do Navegador , ou seja cada novo usuário é uma nova sessão.  Agora para que os dados apareçam conforme eventos dos usuários isso fica a cargo das consultas do banco de dados. Ex :

    User1 : Entrou e cadastrou um item

    User2: Já estava na tela , porém quando clicou no visualizar já conseguia ver os dados do User1

    Perceba que deve haver uma ação do usuário do contrário você teria que programar Threads automáticas para ficar atualizando sozinho ou com javascript. 

    Já no banco de dados deve haver uma boa modelagem de permissões para que tais usuários conseguam ver os dados dos outros depois disso o resto é no código seja chamando procedures ou objetos ORM's.

    Espero ter sido claro.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 17 de julho de 2013 16:28
  • A tela no qual estou com este problema, ela faz o processo de inserir apenas no final.

    Ela necessita que o usuário insira alguns dados antes que são exibidos no gridview mas se outro usuário está fazendo isto no momento, os dados que ela já inseriu e foram pro gridview antes de finalizar estão sendo atribuídos também para o User1.

    Ex: User1 - Entra na tela, começa a cadastrar um lote e insere o primeiro mas vai ao banheiro.

    User2 - Entra na tela após o User1 ir ao banheiro e seu gridview já está preenchido, se o usuário 2 quiser finalizar irá conseguir finalizar com os dados do User1.   Qual a melhor forma de separar? Devo criar uma sessão? algo assim?

    quarta-feira, 17 de julho de 2013 16:39
  • Olha sinceramente para o que você quer não sei se é possível. Pois a entrada do User2 já faz com que o navegador tenho uma nova sessão ou novo acesso. Resumindo é tudo novo para o navegador ele não sabe se ali há teve outro usuário.

    Talvez tenho recursos com Profile, Rules ou algo assim. Mas se o acesso não é da mesma máquina sinceramente não sei como fazer. Vamos aguardar outros usuários para vermos se eles conhece algo assim na web.

     

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br


    • Editado Davi Murilo quarta-feira, 17 de julho de 2013 16:49 Ortografia
    quarta-feira, 17 de julho de 2013 16:48
  • O que está acontecendo é que o navegador não está reconhecendo que são sessões diferentes, está com algum problema.

    Alguma ideia?

    Att,

    Caio Souza.

    quarta-feira, 17 de julho de 2013 17:53
  • Tente fazer o teste com 2 navegadores e não com um só. Tipo o IE você entrar com User1 e no Firefox ou chrome entra com User2.

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 17 de julho de 2013 17:56
  • Já realizei este teste, na verdade estou utilizando navegadores diferentes e até usuários diferentes.

    Mesmo assim não funcionam as sessões separadas.

    Att,

    Caio Souza.

    quarta-feira, 17 de julho de 2013 17:57
  • Tá então me explique novamente  o que realmente deveria acontecer ? Já que nos contexto anteriores segundo o que você quer eu disse que talvez não é possível fazer isso na web.

    Sobre o navegador não entender sessões diferentes faça o teste da prova dos 9, dê um print do SessionID.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 17 de julho de 2013 18:06
  • Explicando o fluxo:

    - Usuário 1 loga no sistema utilizando IE 10 - usuário TESTE;

    - Usuário 2 loga no sistema utilizando Chrome - usuário ADMIN;

    O usuário teste vai até a tela de cadastrar plano e insere o plano, clica em avançar e vai para o próximo passo no Wizard, neste passo 2, ele deve inserir lotes. Os lotes deve chegar até 100% então você deve inserir por exemplo, 4 lotes de 25%.

    Então o usuário teste insere um lote de 25% e fica parado.

    Neste meio tempo, o usuário admin loga , entra em cadastrar plano, cadastra o plano e clica em avançar e vai para o passo 2 do wizard, onde irá inserir os lotes. Ele vai e insere um lote de 30% ( antes não aparecia nenhum lote para ele), quando ele insere um lote de 30%.

    No gridview abaixo são mostrados os lotes inseridos, após inserir o lote de 30% o usuário admin olha e tem 55% dos lotes já cadastrados ( 25% + 30% do lote que inseriu ).

    Sendo que 1 destes lotes não é dele.

    O problema que possuo é o seguinte, os lotes são inseridos numa LISTA.

    Essa lista é lida pelo gridview e exibida, então criei uma sessão para adicionar a lista e utilizar.

    Segue o código.

    lstObjIssue.Add(objIssue); string Sessao; Sessao = User.Identity.Name; Session["" + Sessao + ""] = lstObjIssue;

    {.....}

    gdvLote.DataSource = (List<Issue>)Session["" + Sessao + ""];
                    gdvLote.DataBind();


    quarta-feira, 17 de julho de 2013 18:39