exempolo para gerenciar sessao
Página 1 de 1
exempolo para gerenciar sessao
List<PedidoProduto> _ItensPedidoAtual;
private List<PedidoProduto> ItensPedidoAtual
{
get
{
_ItensPedidoAtual = (List<PedidoProduto>)Session["ProdutosPedidoAtual"];
if (_ItensPedidoAtual == null)
{
_ItensPedidoAtual = new List<PedidoProduto>();
Session["ProdutosPedidoAtual"] = _ItensPedidoAtual;
}
return _ItensPedidoAtual;
}
set
{
Session["ProdutosPedidoAtual"] = value;
_ItensPedidoAtual = value;
}
}
private List<PedidoProduto> ItensPedidoAtual
{
get
{
_ItensPedidoAtual = (List<PedidoProduto>)Session["ProdutosPedidoAtual"];
if (_ItensPedidoAtual == null)
{
_ItensPedidoAtual = new List<PedidoProduto>();
Session["ProdutosPedidoAtual"] = _ItensPedidoAtual;
}
return _ItensPedidoAtual;
}
set
{
Session["ProdutosPedidoAtual"] = value;
_ItensPedidoAtual = value;
}
}
Re: exempolo para gerenciar sessao
Pessoal, como sabermos que ao criar pedidos, o novo pedido fica "em cache" seria uma boa pratica utilizarmos uma classe que cuidasse das questões de cache, para que o controller tenha função exclusiva de tratar requisições e respostas.
Neste caso, segue uma classe chamada CacheManager. A ideia é substituirmos tudo que envolve cache nas Controllers com a chamada desta classe.
Com vocês notarão o código ficará mais organizado:
using MasterChild.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MasterChild.Web.Helper
{
public class CacheManager
{
private static System.Web.SessionState.HttpSessionState Session
{
get
{
return HttpContext.Current.Session;
}
}
public static Pedido PedidoAtual
{
get
{
return (Pedido)Session["PedidoAtual"];
}
set
{
Session["PedidoAtual"] = value;
}
}
public static bool AdicionarItemAoPedidoAtual(PedidoProduto item)
{
item.PedidoProdutoId = Interador();
PedidoAtual.Itens.Add(item);
return true;
}
public static PedidoProduto LocalizarItem(Func<PedidoProduto,bool> predicado)
{
var item = PedidoAtual.Itens.Where(predicado).FirstOrDefault();
return item;
}
private static int Interador()
{
if (Session["Interador"] == null) Session["Interador"] = 0;
int posItem = (int)Session["Interador"];
posItem++;
Session["Interador"] = posItem++;
return posItem;
}
}
}
Neste caso, segue uma classe chamada CacheManager. A ideia é substituirmos tudo que envolve cache nas Controllers com a chamada desta classe.
Com vocês notarão o código ficará mais organizado:
using MasterChild.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MasterChild.Web.Helper
{
public class CacheManager
{
private static System.Web.SessionState.HttpSessionState Session
{
get
{
return HttpContext.Current.Session;
}
}
public static Pedido PedidoAtual
{
get
{
return (Pedido)Session["PedidoAtual"];
}
set
{
Session["PedidoAtual"] = value;
}
}
public static bool AdicionarItemAoPedidoAtual(PedidoProduto item)
{
item.PedidoProdutoId = Interador();
PedidoAtual.Itens.Add(item);
return true;
}
public static PedidoProduto LocalizarItem(Func<PedidoProduto,bool> predicado)
{
var item = PedidoAtual.Itens.Where(predicado).FirstOrDefault();
return item;
}
private static int Interador()
{
if (Session["Interador"] == null) Session["Interador"] = 0;
int posItem = (int)Session["Interador"];
posItem++;
Session["Interador"] = posItem++;
return posItem;
}
}
}
Tópicos semelhantes
» Projeto HandsOn disponivel para download + Atividades de férias
» Ferramenta para parsear JSON e montar estrutura de classes
» Atualização do .Net Framework Disponivel para download
» Atualização do .Net Framework disponível para download
» Nova solução para o problema do MVCScaffolding
» Ferramenta para parsear JSON e montar estrutura de classes
» Atualização do .Net Framework Disponivel para download
» Atualização do .Net Framework disponível para download
» Nova solução para o problema do MVCScaffolding
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sex Ago 26, 2016 5:13 pm por Admin
» Resolucao do Lab1 do Modulo 3
Qui Ago 11, 2016 9:12 am por Admin
» Roteiro – Treinamento ASP.NET MVC Avançado
Qui Ago 04, 2016 5:40 pm por Admin
» Atualização do .Net Framework disponível para download
Qui Ago 04, 2016 4:58 pm por Admin
» Atualização do .Net Framework Disponivel para download
Qui Ago 04, 2016 4:57 pm por Admin
» Exercicios de férias
Ter Ago 02, 2016 1:47 pm por Admin
» Projeto HandsOn disponivel para download + Atividades de férias
Qui Jul 07, 2016 5:27 pm por Admin
» exemplo de datepicker com jQuery UI
Sex Jul 01, 2016 5:52 pm por Admin
» exempolo para gerenciar sessao
Sex Jul 01, 2016 5:24 pm por Admin