public void GenarateHtmFile() { IEnumerable <IGrouping <string, TutorailChapter> > dicMenu; TutorailChapter chapterContent; List <TutorailChapter> listChapters = null; List <TutorailItem> listTutorails = null; if (cbTutorail.SelectedValue == "" || lvChapter.SelectedValue == "") { return; } int intItemId; int intChapterId; int tutorailCategoryID; if (!int.TryParse(cbTutorail.SelectedValue.ToString(), out intItemId)) { return; } if (!int.TryParse(lvChapter.SelectedValue.ToString(), out intChapterId)) { return; } tutorailCategoryID = int.Parse(cbCategory.SelectedValue.ToString()); using (var tutoraildb = new TutorailsDBContext()) { if (cbGenarate.SelectionBoxItem.ToString() == "本类别") { listChapters = (from c in tutoraildb.Chapters join t in tutoraildb.Items on c.tutorialitem equals t.id where t.category == tutorailCategoryID select c).ToList <TutorailChapter>(); listTutorails = (from t in tutoraildb.Items where t.category == tutorailCategoryID select t).ToList(); genarateType = GenarateType.Category; } if (cbGenarate.SelectionBoxItem.ToString() == "本教程") { listChapters = (from c in tutoraildb.Chapters where c.tutorialitem == intItemId select c).ToList <TutorailChapter>(); genarateType = GenarateType.Tutorail; } if (cbGenarate.SelectionBoxItem.ToString() == "当前页面") { listChapters = (from c in tutoraildb.Chapters where c.id == intChapterId select c).ToList <TutorailChapter>(); genarateType = GenarateType.Page; } } if (genarateType == GenarateType.Category) { foreach (TutorailItem item in listTutorails) { dicMenu = GetTutorailMenuFromLocal(item.id, listChapters, genarateType); List <TutorailChapter> tchapters = (from c in listChapters where c.tutorialitem == item.id select c).ToList(); foreach (TutorailChapter chapter in tchapters) { CreateFile(dicMenu, chapter); } } } else if (genarateType == GenarateType.Tutorail) { dicMenu = GetTutorailMenuFromLocal(intItemId, listChapters, genarateType); foreach (TutorailChapter chapter in listChapters) { CreateFile(dicMenu, chapter); } } else { dicMenu = GetTutorailMenuAndContent(intItemId, intChapterId, out chapterContent); if (listChapters.Count > 0) { CreateFile(dicMenu, listChapters[0]); } } }
public IEnumerable <IGrouping <string, TutorailChapter> > GetTutorailMenuFromLocal(int tutorailid, List <TutorailChapter> chapters, GenarateType gtype) { IEnumerable <IGrouping <string, TutorailChapter> > result = null; if (gtype == GenarateType.Category) { result = (from c in chapters where c.tutorialitem == tutorailid select c).OrderBy(p => p.chapter_seq).GroupBy(p => p.chapter_group); } if (gtype == GenarateType.Tutorail) { result = chapters.OrderBy(p => p.chapter_seq).GroupBy(p => p.chapter_group); } return(result); }