⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 core.cs

📁 CSDN助手.net 由于csdn论坛改版
💻 CS
📖 第 1 页 / 共 2 页
字号:
/// <Copyright>
/// This Program Written By Luyan(5drush)
/// 2002/4/23
/// Email:nluyan@163.net
/// QQ:5743345
/// </Copyright>

using System;
using System.Data;
using System.Collections;
using System.Text;
using System.Collections.Specialized;

namespace CSDN
{
	/// <summary>
	/// Core 的摘要说明。
	/// </summary>
	public class Core
	{

		private LDA lda = new LDA();
		private RDA rda = new RDA();
		private string aspsessionid;
		private bool hasLogin;

		public Core()
		{

		}

		public bool HasLogin
		{
			get
			{
				return hasLogin;
			}
		}

		public DataView GetTopicIndexDataView(int RoomId, int Block)
		{
			DataView dv = lda.GetTopicIndexDataView(RoomId, Block);
			dv.AllowEdit = false;
			dv.AllowNew = false;
			return dv;
		}

		public DataView dvTopicIndex
		{
			get
			{
				return lda.dvTopicIndex;
			}
		}

		public DataView dvIssue
		{
			get
			{
				return lda.dvIssue;
			}
		}

		public DataView dvReply
		{
			get
			{
				return lda.dvReply;
			}
		}

		public  void UpdateTopicIndex(int RoomId, int Block)
		{
			TopicItemIndex rdaTopicItemIndex = rda.GetTopicItemIndex(RoomId,Block);
			string TopicMaxId = lda.GetTopicMaxId(RoomId, Block);
			DateTime ReplyMaxTime = lda.GetReplyMaxTime(RoomId,Block);
			for(int i = 0; i < rdaTopicItemIndex.Length; i++)
			{
				if(Int32.Parse(rdaTopicItemIndex[i].TopicId) > Int32.Parse(TopicMaxId))
				{
					lda.AddTopicIndex(
						rdaTopicItemIndex[i].TopicId,
						rdaTopicItemIndex[i].TopicName,
						rdaTopicItemIndex[i].PostUserName,
						rdaTopicItemIndex[i].ReplyNum,
						rdaTopicItemIndex[i].ReplyDateTime,
						rdaTopicItemIndex[i].Point,
						rdaTopicItemIndex[i].EndState,
						1,
						RoomId.ToString(),
						Block.ToString()
					);
				}
				else if(rdaTopicItemIndex[i].ReplyDateTime > ReplyMaxTime)
				{
					if(lda.HasTopicIndex(rdaTopicItemIndex[i].TopicId))
					{
						if(rdaTopicItemIndex[i].ReplyNum > lda.GetTopicIndexReplyNum(rdaTopicItemIndex[i].TopicId))
						{
							if(lda.GetTopicIndexStatus(rdaTopicItemIndex[i].TopicId) == 0)
							{
								lda.SetTopicIndexStatus(rdaTopicItemIndex[i].TopicId,2);
							}
							lda.SetTopicIndexReplyNum(rdaTopicItemIndex[i].TopicId,rdaTopicItemIndex[i].ReplyNum);
							lda.SetTopicIndexReplyDateTime(rdaTopicItemIndex[i].TopicId,rdaTopicItemIndex[i].ReplyDateTime.ToString());
						}
					}
					else
						lda.AddTopicIndex(
							rdaTopicItemIndex[i].TopicId,
							rdaTopicItemIndex[i].TopicName,
							rdaTopicItemIndex[i].PostUserName,
							rdaTopicItemIndex[i].ReplyNum,
							rdaTopicItemIndex[i].ReplyDateTime,
							rdaTopicItemIndex[i].Point,
							rdaTopicItemIndex[i].EndState,
							1,
							RoomId.ToString(),
							Block.ToString()
							);
				}
				else
				{
					continue;
				}
			}
		}

		public  void UpdateMyAttend(int RoomId, int Block)
		{
			TopicItemIndex rdaTopicItemIndex = rda.GetTopicItemIndex(RoomId,Block);
			string TopicMaxId = lda.GetTopicMaxId(RoomId, Block);
			DateTime ReplyMaxTime = lda.GetReplyMaxTime(RoomId,Block);
			for(int i = 0; i < rdaTopicItemIndex.Length; i++)
			{
				if(Int32.Parse(rdaTopicItemIndex[i].TopicId) > Int32.Parse(TopicMaxId))
				{
					lda.AddTopicIndex(
						rdaTopicItemIndex[i].TopicId,
						rdaTopicItemIndex[i].TopicName,
						rdaTopicItemIndex[i].PostUserName,
						rdaTopicItemIndex[i].ReplyNum,
						rdaTopicItemIndex[i].ReplyDateTime,
						rdaTopicItemIndex[i].Point,
						rdaTopicItemIndex[i].EndState,
						1,
						RoomId.ToString(),
						Block.ToString()
						);
				}
				else if(rdaTopicItemIndex[i].ReplyDateTime > ReplyMaxTime)
				{
					if(lda.HasTopicIndex(rdaTopicItemIndex[i].TopicId))
					{
						if(rdaTopicItemIndex[i].ReplyNum > lda.GetTopicIndexReplyNum(rdaTopicItemIndex[i].TopicId))
						{
							if(lda.GetTopicIndexStatus(rdaTopicItemIndex[i].TopicId) == 0)
							{
								lda.SetTopicIndexStatus(rdaTopicItemIndex[i].TopicId,2);
							}
							lda.SetTopicIndexReplyNum(rdaTopicItemIndex[i].TopicId,rdaTopicItemIndex[i].ReplyNum);
							lda.SetTopicIndexReplyDateTime(rdaTopicItemIndex[i].TopicId,rdaTopicItemIndex[i].ReplyDateTime.ToString());
						}
					}
					else
						lda.AddTopicIndex(
							rdaTopicItemIndex[i].TopicId,
							rdaTopicItemIndex[i].TopicName,
							rdaTopicItemIndex[i].PostUserName,
							rdaTopicItemIndex[i].ReplyNum,
							rdaTopicItemIndex[i].ReplyDateTime,
							rdaTopicItemIndex[i].Point,
							rdaTopicItemIndex[i].EndState,
							1,
							RoomId.ToString(),
							Block.ToString()
							);
				}
				else
				{
					continue;
				}
			}
		}

		/// <summary>
		/// 获取帖子的细节,如果数据库中不存在,则从网上下载该帖子,并更新数据库
		/// </summary>
		/// <param name="TopicId"></param>
		/// <returns></returns>
		public Topic GetTopic(string TopicId,bool bOffLine)
		{
			Topic topic;
			if(bOffLine==true)
			{
				topic = lda.GetTopic(TopicId);
			}
			else
			{
				switch(lda.GetTopicIndexStatus(TopicId))
				{
					case 1 ://完全更新
						try
						{
							topic = rda.GetTopic(TopicId);
						}
						catch(Exception ex)
						{
							if(ex.Message != "基础连接已经关闭:无法连接到远程服务器。")
							{
								lda.SetTopicIndexStatus(TopicId,3);
								return null;
							}
							else
							{
								throw ex;
							}
						}
						lda.AddIssue(
							topic.TopicId,
							topic.TopicName,
							topic.TopicPoster.PostUserId,
							topic.TopicPoster.PostUserName,
							topic.TopicPoster.PostUserNickName,
							topic.TopicPoster.Rank,
							topic.TopicPoster.RankNum,
							topic.TopicPoster.Credit,
							topic.RoomName,
							topic.ReplyNum,
							topic.PostDateTime,
							topic.Point,
							topic.ReadNum,
							topic.RoomId.ToString(),
							topic.EndState,
							topic.Content
							);
						for(int i = 0; i < topic.ReplyIndex.Length; i++)
						{
							lda.AddReply(
								topic.ReplyIndex[i].ReplyId,
								topic.ReplyIndex[i].ReplyPoster.PostUserId,
								topic.ReplyIndex[i].ReplyPoster.PostUserName,
								topic.ReplyIndex[i].ReplyPoster.PostUserNickName,
								topic.ReplyIndex[i].ReplyPoster.Rank,
								topic.ReplyIndex[i].ReplyPoster.RankNum,
								topic.ReplyIndex[i].ReplyPoster.Credit,
								topic.ReplyIndex[i].TopicId,
								topic.ReplyIndex[i].Point,
								topic.ReplyIndex[i].PostDateTime,
								topic.ReplyIndex[i].Content
								);
						}
						lda.SetTopicIndexStatus(TopicId,0);
						break;
					case 2 ://回复更新
						try
						{
							topic = rda.GetTopic(TopicId);
						}
						catch
						{
							lda.SetTopicIndexStatus(TopicId,3);
							return null;
						}
						for(int i = lda.GetTopic(TopicId).ReplyIndex.Length; i < topic.ReplyIndex.Length; i++)
						{
							lda.AddReply(
								topic.ReplyIndex[i].ReplyId,
								topic.ReplyIndex[i].ReplyPoster.PostUserId,
								topic.ReplyIndex[i].ReplyPoster.PostUserName,
								topic.ReplyIndex[i].ReplyPoster.PostUserNickName,
								topic.ReplyIndex[i].ReplyPoster.Rank,
								topic.ReplyIndex[i].ReplyPoster.RankNum,
								topic.ReplyIndex[i].ReplyPoster.Credit,
								topic.ReplyIndex[i].TopicId,
								topic.ReplyIndex[i].Point,
								topic.ReplyIndex[i].PostDateTime,
								topic.ReplyIndex[i].Content
								);
						}
						lda.SetTopicIndexReplyNum(topic.TopicId,topic.ReplyNum);
						lda.SetTopicIndexReplyDateTime(topic.TopicId,topic.ReplyIndex[topic.ReplyIndex.Length - 1].PostDateTime.ToString());
						lda.SetTopicIndexStatus(TopicId,0);
						break;
					case 3 : //文件损坏
						try
						{
							topic = rda.GetTopic(TopicId);
						}
						catch(Exception ex)
						{
							if(ex.Message != "基础连接已经关闭:无法连接到远程服务器。")
							{
								lda.SetTopicIndexStatus(TopicId,3);
								return null;
							}
							else
							{
								throw ex;
							}
						}
						lda.AddIssue(
							topic.TopicId,
							topic.TopicName,
							topic.TopicPoster.PostUserId,
							topic.TopicPoster.PostUserName,
							topic.TopicPoster.PostUserNickName,
							topic.TopicPoster.Rank,
							topic.TopicPoster.RankNum,
							topic.TopicPoster.Credit,
							topic.RoomName,
							topic.ReplyNum,
							topic.PostDateTime,
							topic.Point,
							topic.ReadNum,
							topic.RoomId.ToString(),
							topic.EndState,
							topic.Content
							);
						for(int i = 0; i < topic.ReplyIndex.Length; i++)
						{
							lda.AddReply(
								topic.ReplyIndex[i].ReplyId,
								topic.ReplyIndex[i].ReplyPoster.PostUserId,
								topic.ReplyIndex[i].ReplyPoster.PostUserName,
								topic.ReplyIndex[i].ReplyPoster.PostUserNickName,
								topic.ReplyIndex[i].ReplyPoster.Rank,
								topic.ReplyIndex[i].ReplyPoster.RankNum,
								topic.ReplyIndex[i].ReplyPoster.Credit,
								topic.ReplyIndex[i].TopicId,
								topic.ReplyIndex[i].Point,
								topic.ReplyIndex[i].PostDateTime,
								topic.ReplyIndex[i].Content
								);
						}
						lda.SetTopicIndexStatus(TopicId,0);
						break;

⌨️ 快捷键说明

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