// コンストラクタ 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(); }
// メソッド /// <summary> /// path を元に、適切なコントローラを作成します。 /// </summary> private HatomaruGetAction GetAction(AbsPath path){ string[] fragments = path.GetFragments(BasePath); return new ReputationView(this, path); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }