예제 #1
0
        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]);
                }
            }
        }
예제 #2
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);
        }