articleservice.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 235 行

CS
235
字号
/* 
 * ArticleService.cs @Microsoft Visual Studio 2005 <.NET Framework 2.0>
 * AfritXia
 * 2007-12-10
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections.Generic;

using NET.AfritXia.MyHome.DBTask.Definition;
using NET.AfritXia.MyHome.Extension.Definition;
using NET.AfritXia.MyHome.Model.Message;
using NET.AfritXia.MyHome.ServiceInterface;

namespace NET.AfritXia.MyHome.InternalService
{
	/// <summary>
	/// 文章服务实现类
	/// </summary>
	public class ArticleService : ServiceBase, IArticleService
	{
		#region 类构造器
		/// <summary>
		/// 类默认构造器
		/// </summary>
		public ArticleService()
		{
		}
		#endregion

		#region IArticleService 成员
		public void Append(Article newArticle)
		{
			using (IDBTaskTransaction tranx = MyDBTaskFactory.CreateDBTaskTransaction())
			{
				// 创建文章数据库任务
				IArticleTask task = MyDBTaskFactory.CreateArticleTask();
				// 创建文章扩展
				IArticleExtension ext = MyExtensionFactory.CreateArticleExtension();

				// 登记数据库事务
				task.EnlistTransaction(tranx);
				ext.EnlistTransactionObject(tranx);

				// 设置活动用户名称
				ext.Actor = this.Actor;

				try
				{
					// 准备添加文章
					ext.OnPreAppend(newArticle);
					// 添加文章
					task.Append(newArticle);
					// 添加文章完成
					ext.OnAppendComplete(newArticle);

					// 提交事务
					tranx.Commit();
				}
				catch
				{
					// 回滚事务
					tranx.Rollback();
					throw;
				}
			}
		}

		public void Delete(int articleID)
		{
			using (IDBTaskTransaction tranx = MyDBTaskFactory.CreateDBTaskTransaction())
			{
				// 创建文章数据库任务
				IArticleTask task = MyDBTaskFactory.CreateArticleTask();
				// 创建文章扩展
				IArticleExtension ext = MyExtensionFactory.CreateArticleExtension();

				// 登记数据库事务
				task.EnlistTransaction(tranx);
				ext.EnlistTransactionObject(tranx);

				// 设置活动用户名称
				ext.Actor = this.Actor;

				try
				{
					// 获取要删除的文章
					Article delArticle = task.ViewArticle(articleID);

					// 准备删除文章
					ext.OnPreDelete(delArticle);
					// 删除文章
					task.Delete(articleID);
					// 删除文章完成
					ext.OnDeleteComplete(delArticle);

					// 提交事务
					tranx.Commit();
				}
				catch
				{
					// 回滚事务
					tranx.Rollback();
					throw;
				}
			}
		}

		public void Update(Article newArticle)
		{
			using (IDBTaskTransaction tranx = MyDBTaskFactory.CreateDBTaskTransaction())
			{
				// 创建文章数据库任务
				IArticleTask task = MyDBTaskFactory.CreateArticleTask();
				// 创建文章扩展
				IArticleExtension ext = MyExtensionFactory.CreateArticleExtension();

				// 登记数据库事务
				task.EnlistTransaction(tranx);
				ext.EnlistTransactionObject(tranx);

				// 设置活动用户名称
				ext.Actor = this.Actor;

				try
				{
					// 准备更新文章
					ext.OnPreUpdate(newArticle);
					// 更新文章
					task.Update(newArticle);
					// 更新文章完成
					ext.OnUpdateComplete(newArticle);

					// 提交事务
					tranx.Commit();
				}
				catch
				{
					// 回滚事务
					tranx.Rollback();
					throw;
				}
			}
		}

		public IList<Article> GetArticleList(int orderGist, 
			int startRecord, int maxRecords, out int allRecordCount)
		{
			allRecordCount = 0;

			IList<Article> articleList = null;

			using (IDBTaskTransaction tranx = MyDBTaskFactory.CreateDBTaskTransaction())
			{
				// 创建文章数据库任务
				IArticleTask task = MyDBTaskFactory.CreateArticleTask();
				// 创建文章扩展
				IArticleExtension ext = MyExtensionFactory.CreateArticleExtension();

				// 登记数据库事务
				task.EnlistTransaction(tranx);
				ext.EnlistTransactionObject(tranx);

				// 设置活动用户名称
				ext.Actor = this.Actor;

				try
				{
					// 准备获取文章列表
					ext.OnPreGetArticleList();
					// 获取文章列表
					articleList = task.GetArticleList(orderGist, startRecord, maxRecords, out allRecordCount);
					// 获取文章列表完成
					ext.OnGetArticleListComplete(articleList);

					// 提交事务
					tranx.Commit();
				}
				catch
				{
					// 回滚事务
					tranx.Rollback();
					throw;
				}
			}

			return articleList;
		}

		public Article ViewArticle(int articleID)
		{
			Article viewArticle = null;

			using (IDBTaskTransaction tranx = MyDBTaskFactory.CreateDBTaskTransaction())
			{
				// 创建文章数据库任务
				IArticleTask task = MyDBTaskFactory.CreateArticleTask();
				// 创建文章扩展
				IArticleExtension ext = MyExtensionFactory.CreateArticleExtension();

				// 登记数据库事务
				task.EnlistTransaction(tranx);
				ext.EnlistTransactionObject(tranx);

				// 设置活动用户名称
				ext.Actor = this.Actor;

				try
				{
					// 准备浏览文章
					ext.OnPreViewArticle(articleID);
					// 浏览文章
					viewArticle = task.ViewArticle(articleID);
					// 浏览文章完成
					ext.OnViewArticleComplete(articleID, viewArticle);

					// 提交事务
					tranx.Commit();
				}
				catch
				{
					// 回滚事务
					tranx.Rollback();
					throw;
				}
			}

			return viewArticle;
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?