Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Книги по теме

Искать:
в:
Порядок:

Исходник

Автор:

Nik Legaloff

 
Название:

Сессия работы с данными для web

Дата: 11 August 2005
Описание: См http://aspnetmania.com/Blogs/Post/278.html 
  Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения следующую строку: [CODEPOST ID=154]Сессия работы с данными для web [/CODEPOST]
Оценка: Проголосовало 2 посетителей, средняя оценка 3.00
Оценить:
  1 /// <summary>
  2 /// Сесия работы с данными
  3 /// </summary>
  4 public class DataSession
  5 {
  6 	#region Static
  7 
  8 	private static Hashtable sessions = new Hashtable();
  9 
 10 	/// <summary>
 11 	/// Получить ключ текущей датаСессии 
 12 	/// </summary>
 13 	private static string sessionKey
 14 	{
 15 		get
 16 		{
 17 			// Используем простой идентификатор сессии, но можно реализовать и свой
 18 			try{return  HttpContext.Current.Session.SessionID;}
 19 			catch{return "static";}
 20 		}
 21 	}
 22 
 23 	/// <summary>
 24 	/// Текущая датаСессия
 25 	/// </summary>
 26 	public static DataSession Current
 27 	{
 28 		get
 29 		{
 30 			string key = sessionKey;
 31 			if (sessions.Contains(key)) return (DataSession) sessions[key];
 32 			DataSession dataSession = new DataSession(key);
 33 			sessions.Add(key, dataSession);
 34 			return dataSession;
 35 		}
 36 	}
 37 
 38 	public static void CloseCurrent()
 39 	{
 40 		DataSession.Current.close();
 41 		sessions.Remove(sessionKey);
 42 	}
 43 
 44 	#endregion
 45 
 46 	private UnitOfWork uow;
 47 	private string key;
 48 	private ConnectionPool connectionPool;
 49 
 50 
 51 	/// <summary>
 52 	/// Ключ текущей датаСессии
 53 	/// </summary>
 54 	public string Key
 55 	{
 56 		get { return key; }
 57 		set { key = value; }
 58 	}
 59 
 60 	/// <summary>
 61 	/// Экземпляр единицыаботы текущей датаСессии
 62 	/// </summary>
 63 	public UnitOfWork UOW
 64 	{
 65 		get { return uow; }
 66 		set { uow = value; }
 67 	}
 68 
 69 	public ConnectionPool ConnectionPool
 70 	{
 71 		get { return connectionPool; }
 72 	}
 73 
 74 	/// <summary>
 75 	/// Конструктор новой датаСессии
 76 	/// </summary>
 77 	/// <param name="key">Ключ новой датасессии</param>
 78 	public DataSession(string key)
 79 	{
 80 		this.key = key;
 81 		this.uow = new UnitOfWork();
 82 		this.connectionPool=new ConnectionPool();
 83 	}
 84 
 85 	/// <summary>
 86 	/// Откатить бизнесТранзакцию
 87 	/// </summary>
 88 	public void Rolback()
 89 	{
 90 		UOW.Rolback();
 91 	}
 92 
 93 	/// <summary>
 94 	/// Принять изменения сделанные в текущей датаСессии
 95 	/// </summary>
 96 	public void Commit()
 97 	{
 98 		UOW.Commit();
 99 	}
100 
101 	/// <summary>
102 	/// закрыть текущую датасессию, приняв изменения произощедшие в ней
103 	/// </summary>
104 	private void close()
105 	{
106 		ConnectionPool.Dispose();
107 		UOW.Commit();
108 	}
109 }
Вернуться к списку исходников в категории ADO.NET
 
Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта