コード例 #1
0
ファイル: BbsPostAction.cs プロジェクト: bakera/Hatomaru.dll
// コンストラクタ
		public BbsPostAction(HatomaruXml model, AbsPath path, HttpRequest req) : base(model, path, req){
			string[] fragments = path.GetFragments(BasePath);
			if(model is HatomaruBbs){
				if(fragments.Length > 1 && fragments[0].Equals(BbsViewArticle.Id)){
					int articleId = fragments[1].ToInt32();
					myTargetArticle = Bbs.GetArticle(articleId);
				}
			} else {
				myTargetArticle = new Article();
				myTargetArticle.CommentTo = path.RemoveLast(CommentPath);
			}
			myResponse = new NoCacheResponse(Model, path);
			GetHtml();
		}
コード例 #2
0
// メソッド

		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			return new ReputationView(this, path);
		}
コード例 #3
0
ファイル: yearDiary.cs プロジェクト: bakera/Hatomaru.dll
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string firstStr = fragments[0];
				int month = firstStr.ToInt32();
				if(month > 0){
					if(fragments.Length > 1){
						int day = fragments[1].ToInt32();
						if(day > 0) return new YearDiaryViewDate(this, path, month, day);
					}
					return new YearDiaryViewMonth(this, path, month);
				}
			}
			return new YearDiaryViewYear(this, path);
		}
コード例 #4
0
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string first = fragments[0];
				if(first == GlossaryViewGenreList.Id){
					if(fragments.Length > 1) return new GlossaryViewGenre(this, path, fragments[1]);
					return new GlossaryViewGenreList(this, path);
				}
				if(fragments.Length > 1 && fragments[1].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
					return new ViewComment(this, path, BasePath.Combine(first));
				}
				return new GlossaryViewWord(this, path, first);
			}
			// どれでもないときはトップ
			return new GlossaryViewList(this, path);
		}
コード例 #5
0
ファイル: diaryIndex.cs プロジェクト: bakera/Hatomaru.dll
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string firstStr = fragments[0];
				switch(firstStr){
				case DiaryIndexViewTopic.Id:
					if(fragments.Length > 1){
						int num = fragments[1].ToInt32();
						if(num == 0) break;
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(DiaryIndexViewTopic.Id, fragments[1]));
						}
						return new DiaryIndexViewTopic(this, path, num);
					}
					break;
				case DiaryIndexViewGenre.Id:
					if(fragments.Length > 1) return new DiaryIndexViewGenre(this, path, fragments[1]);
					return new DiaryIndexViewGenreList(this, path);
				case DiaryIndexViewBackNumber.Id:
					return new DiaryIndexViewBackNumber(this, path);
				case DiaryIndexViewUpdated.Id:
					if(fragments.Length > 1 && fragments[1].Equals(DiaryIndexUpdatedAtom.Id, StringComparison.InvariantCultureIgnoreCase)){
						return new DiaryIndexUpdatedAtom(this, path);
					}
					return new DiaryIndexViewUpdated(this, path);
				case DiaryIndexViewTitleList.Id:
					return new DiaryIndexViewTitleList(this, path);
				case DiaryIndexViewAmazon.Id:
					return new DiaryIndexViewAmazon(this, path);
				case DiaryIndexRss.Id:
					return new DiaryIndexRss(this, path);
				case DiaryIndexAtom.Id:
					return new DiaryIndexAtom(this, path);


				}
			}
			// どれでもないときはトップ
			return new DiaryIndexViewRecently(this, path);
		}
コード例 #6
0
ファイル: hatomarudoc.cs プロジェクト: bakera/Hatomaru.dll
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string first = fragments[0];
				if(first.Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
					return new ViewComment(this, path, BasePath);
				}
				if(fragments.Length > 1 && fragments[1].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
					return new ViewComment(this, path, BasePath.Combine(first));
				}
				return new DocViewSection(this, path, first);
			}
			return new DocViewTop(this, path);
		}
コード例 #7
0
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private HatomaruGetAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string first = fragments[0];
				switch(first){
				case HtmlRefViewDataList.Id:
					if(fragments.Length > 1){
						string second = fragments[1];
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(first, second));
						}
						return new HtmlRefViewData(this, path, second);
					}
					return new HtmlRefViewDataList(this, path);
				case HtmlRefViewElementList.Id:
					if(fragments.Length > 1){
						string second = fragments[1];
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(first, second));
						}
						return new HtmlRefViewElement(this, path, second);
					}
					return new HtmlRefViewElementList(this, path);
				case HtmlRefViewAttributeList.Id:
					if(fragments.Length > 1){
						string second = fragments[1];
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(first, second));
						}
						return new HtmlRefViewAttribute(this, path, second);
					}
					return new HtmlRefViewAttributeList(this, path);
				case HtmlRefViewElementGroupList.Id:
					if(fragments.Length > 1){
						string second = fragments[1];
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(first, second));
						}
						return new HtmlRefViewElementGroup(this, path, second);
					}
					return new HtmlRefViewElementGroupList(this, path);
				case HtmlRefViewAttributeGroupList.Id:
					if(fragments.Length > 1){
						string second = fragments[1];
						if(fragments.Length > 2 && fragments[2].Equals(HatomaruActionBase.CommentPath, StringComparison.InvariantCultureIgnoreCase)){
							return new ViewComment(this, path, BasePath.Combine(first, second));
						}
						return new HtmlRefViewAttributeGroup(this, path, second);
					}
					return new HtmlRefViewAttributeGroupList(this, path);
				}
			}
			return new HtmlRefViewIndex(this, path);
		}
コード例 #8
0
ファイル: hatomarubbs.cs プロジェクト: bakera/Hatomaru.dll
		/// <summary>
		/// path を元に、適切なコントローラを作成します。
		/// </summary>
		private BbsAction GetAction(AbsPath path){
			string[] fragments = path.GetFragments(BasePath);
			if(fragments.Length > 0){
				string firstStr = fragments[0];
				int num = 0;
				if(fragments.Length > 1) num = fragments[1].ToInt32();
				switch(firstStr){
				case BbsViewThread.Id:
					return new BbsViewThread(this, path, num);
				case BbsViewOrder.Id:
					return new BbsViewOrder(this, path, num);
				case BbsViewRootList.Id:
					return new BbsViewRootList(this, path, num);
				case BbsViewNewPost.Id:
					return new BbsViewNewPost(this, path);
				case BbsViewArticle.Id:
					return new BbsViewArticle(this, path, num);
				case BbsViewInThread.Id:
					return new BbsViewInThread(this, path, num);
				}
			}
			// どれでもないときは BBS のトップ
			return new BbsViewThread(this, path, 1);
		}