?? core.cs
字號:
/// <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 + -