コード例 #1
0
ファイル: CrudController.cs プロジェクト: Walesby/Capstone
        public async Task <IActionResult> PutUserNovelList(NovelList novelList)
        {
            var name = User.FindFirstValue(ClaimTypes.Name);
            var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == name);

            novelList.UserId = user.Id;
            var novelListItem = await _context.NovelList.FirstOrDefaultAsync(a => a.NovelItemId == novelList.NovelItemId && a.UserId == user.Id);

            var novelItem = await _context.NovelItem.FirstOrDefaultAsync(a => a.Id == novelListItem.NovelItemId);

            if (novelList.UserRating >= 1 && novelList.UserRating <= 10 && novelList.UserProgress >= 0 && novelList.UserProgress <= novelItem.EpisodeCount)
            {
                novelListItem.UserRating   = novelList.UserRating;
                novelListItem.UserProgress = novelList.UserProgress;
                if (novelListItem.UserProgress == novelItem.EpisodeCount)
                {
                    // Set to complete
                    novelListItem.CompleteStatus = (CompleteStatusNovel)1;
                }
                else if (novelListItem.UserProgress > 0)
                {
                    // Set to reading
                    novelListItem.CompleteStatus = (CompleteStatusNovel)2;
                }
                _context.Entry(novelListItem).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                return(Ok("Updated list"));
            }
            else
            {
                return(BadRequest());
            }
        }
コード例 #2
0
ファイル: MainViewModel.cs プロジェクト: xrexterx/NCodeParser
        private void OnAdd3()
        {
            if (NovelList.Any(R => R.Code == Code3))
            {
                SelectedNovel = NovelList.FirstOrDefault(R => R.Code == Code3);
                Code3         = "";

                MessageBox.Show("이미 등록된 소설입니다.");

                return;
            }

            var novel = new Novel
            {
                Type = NovelType.Kakuyomu,
                Code = Code3
            };

            NovelList.Add(novel);

            Code3 = "";
            UpdateCount++;

            SelectedNovel = novel;
        }
コード例 #3
0
        private void Display()
        {
            string  sql  = "SELECT * FROM Novels";
            DataSet data = connector.query(sql);

            NovelList.DataSource = data;
            NovelList.DataBind();
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            NovelList novelList = db.NovelLists.Find(id);

            db.NovelLists.Remove(novelList);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
 /// <summary>
 /// 提取总榜网页信息
 /// </summary>
 private void ExtractingTotalRankData()
 {
     ParallelLoopResult result = Parallel.ForEach(OriginHtml.ToArray(), (htmlContent, state, i) =>
     {
         foreach (var item in HtmlAnalysis.AnalysisTotalRank(htmlContent))
         {
             NovelList.Add(item);
         }
     });
 }
コード例 #6
0
 public ActionResult Edit([Bind(Include = "Id,Name,Chapter,Genre")] NovelList novelList)
 {
     if (ModelState.IsValid)
     {
         db.Entry(novelList).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(novelList));
 }
コード例 #7
0
        private void RedDetails(NovelList Info)
        {
            var list = GetDetails(Info);

            Dispatcher.Invoke(() =>
            {
                d.Close();
                Dialog.Show(new TextDialog(list));
            });
        }
コード例 #8
0
        public ActionResult Create([Bind(Include = "Id,Name,Chapter,Genre")] NovelList novelList)
        {
            if (ModelState.IsValid)
            {
                db.NovelLists.Add(novelList);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(novelList));
        }
コード例 #9
0
ファイル: MainViewModel.cs プロジェクト: xrexterx/NCodeParser
        private void OnDeleteNovel()
        {
            if (SelectedNovel == null)
            {
                return;
            }

            NovelList.Remove(SelectedNovel);

            if (NovelList.Count > 0)
            {
                SelectedNovel = NovelList[0];
            }
        }
コード例 #10
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NovelList novelList = db.NovelLists.Find(id);

            if (novelList == null)
            {
                return(HttpNotFound());
            }
            return(View(novelList));
        }
コード例 #11
0
        private NovelDetails GetDetails(NovelList Info)
        {
            NovelDetails novelDetails = new NovelDetails();

            novelDetails.Name    = Info.Name;
            novelDetails.NovelId = Info.NovelId;
            novelDetails.Url     = Info.Url;
            novelDetails.Cover   = Info.Cover;
            novelDetails.Author  = Info.Author;
            var    _introduction = biqudu.GetIntroduction(Info.Url);
            string Content       = _introduction.Trim();

            Content = Content.Replace("&nbsp;", "");
            novelDetails.Introduction = Content;
            return(novelDetails);
        }
コード例 #12
0
        public async Task <IActionResult> Top()
        {
            var username = User.FindFirstValue(ClaimTypes.Name);

            if (username == null)
            {
                var noUserViewModel    = new UserNovelListViewModel();
                var topNovelNoUserList = await _context.NovelItem.OrderByDescending(a => a.Rating).ToListAsync <NovelItem>();

                noUserViewModel.NovelInfoList = topNovelNoUserList;
                return(View(noUserViewModel));
            }
            var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username);

            var userId    = user.Id;
            var novelList = await _context.NovelItem.OrderByDescending(a => a.Rating).ToListAsync <NovelItem>();

            var userStats = new List <NovelList>();

            foreach (var novel in novelList)
            {
                var userScore = await _context.NovelList.FirstOrDefaultAsync(a => a.NovelItemId == novel.Id && a.UserId == userId);

                if (userScore == null)
                {
                    var notOnList = new NovelList
                    {
                        UserRating     = 0,
                        UserProgress   = 0,
                        CompleteStatus = 0
                    };
                    userStats.Add(notOnList);
                }
                else
                {
                    userStats.Add(userScore);
                }
            }
            var viewModel = new UserNovelListViewModel
            {
                User          = user,
                NovelInfoList = novelList,
                UserNovelList = userStats
            };

            return(View(viewModel));
        }
コード例 #13
0
        /// <summary>
        /// 搜索
        /// </summary>
        /// <param name="Name"></param>
        /// <param name="Path"></param>
        /// <returns></returns>
        public static List <NovelList> GetSearchList(string Name = "凡人修仙传", string Path = "")
        {
            List <NovelList> novelLists = new List <NovelList>();
            string           url        = "http://www.biqudu.tv/s.php?q=" + Name;
            HtmlWeb          web        = new HtmlWeb();

            web.OverrideEncoding = Encoding.GetEncoding("utf-8");
            //从url中加载
            HtmlDocument doc = web.Load(url);

            try
            {
                var allList = doc.DocumentNode.SelectNodes("//*[@id='nr']").ToList();
                int i       = 1;
                foreach (var item in allList)
                {
                    NovelList    novelList = new NovelList();
                    HtmlDocument adoc      = new HtmlDocument();
                    adoc.LoadHtml(item.InnerHtml);
                    var List = adoc.DocumentNode.SelectNodes("//td").ToList();
                    novelList.Id          = i;
                    novelList.Name        = List[0].SelectSingleNode("//*[@class='odd']/a").InnerText;
                    novelList.Url         = List[0].SelectSingleNode("//*[@class='odd']/a").Attributes["href"].Value;
                    novelList.LastChapter = List[1].InnerText;
                    novelList.Author      = List[2].InnerText;
                    novelList.Number      = List[3].InnerText;
                    novelList.UpdateTime  = List[4].InnerText;
                    novelList.Status      = List[5].InnerText;
                    novelList.NovelId     = novelList.Url.Split('/')[3];
                    var    idArr  = novelList.NovelId.Split('_');
                    string ImgUrl = $"http://www.biqudu.tv/files/article/image/{idArr[0]}/{idArr[1]}/{idArr[1]}s.jpg";
                    novelList.Cover = DownloadFileImg(ImgUrl, $"{idArr[1]}s.jpg", Path + "Img/bqd/");
                    i++;
                    novelLists.Add(novelList);
                }
                return(novelLists);
            }
            catch (Exception)
            {
                return(novelLists);
            }
        }
コード例 #14
0
        private void Worker_RunDownloadHomePageCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Cancelled)
            {
                MessageBox.Show("任务已取消");
                CurrentDownloadHomePageMessage  = "【任务已取消】";
                CurrentDownloadHomePageProgress = 0d;
            }
            else if (e.Error != null)
            {
                MessageBox.Show(e.Error.Message + Environment.NewLine + e.Error.Source + Environment.NewLine + e.Error.StackTrace);
            }
            else
            {
                NovelList.RemoveAll(p => p == null);
                ExtractingHomePageData();
                NovelList.RemoveAll(p => p.Intro == string.Empty || p.Intro == null);
                InsertOrUpdateDate();

                CurrentDownloadHomePageMessage  = "【任务完成】";
                CurrentDownloadHomePageProgress = 100d;
            }
            IsWorkNotRuning = true;
        }
コード例 #15
0
ファイル: CrudController.cs プロジェクト: Walesby/Capstone
        public async Task <IActionResult> PostUserNovelList(NovelList novelList)
        {
            var name = User.FindFirstValue(ClaimTypes.Name);
            var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == name);

            novelList.UserId = user.Id;
            var currentNovelList = await _context.NovelList.Where(a => a.UserId == user.Id).ToListAsync <NovelList>();

            foreach (var listItem in currentNovelList)
            {
                if (listItem.NovelItemId == novelList.NovelItemId)
                {
                    return(BadRequest("Item already on list"));
                }
            }
            _context.NovelList.Add(novelList);
            var updateNovel = await _context.NovelItem.FirstOrDefaultAsync(a => a.Id == novelList.NovelItemId);

            updateNovel.Members += 1;
            _context.Entry(updateNovel).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(Ok("Added to list"));
        }
コード例 #16
0
ファイル: MainViewModel.cs プロジェクト: xrexterx/NCodeParser
 private void OnClosing()
 {
     Config.NovelList = NovelList.ToList();
     Config.Save();
 }