public void CheckWithoutMedalRoom(DbEntitys dbEntitys, BiliBiliClient biliClient) { if (_WithoutMedalRoom == 0)//重启后 { //搜索时间倒序,取上一次的最后一个 var first = dbEntitys.Medals.Where(m => string.IsNullOrEmpty(m.MedalName)).OrderByDescending(m => m.LastSearchTime).FirstOrDefault(); if (first != null) { _WithoutMedalRoom = first.RoomID; } } if (_WithoutMedalRoom == 0) { return; } //常规,取房号大于上一次搜索的第一个 var current = dbEntitys.Medals.Where(m => string.IsNullOrEmpty(m.MedalName) && m.RoomID > _WithoutMedalRoom).OrderBy(m => m.RoomID).FirstOrDefault(); if (current == null) { _WithoutMedalRoom = StartRoom;//未找到更大的房号,说明已经到末尾,复原从头开始搜索 return; } _WithoutMedalRoom = current.RoomID; current.LastSearchTime = DateTime.Now; string medalName = biliClient.GetRoomMedal(current.RoomID).Result; if (!string.IsNullOrEmpty(medalName)) { current.MedalName = medalName; current.LastUpdateTime = DateTime.Now; } dbEntitys.SaveChanges(); }
public void CollectNewRoom(DbEntitys dbEntitys, BiliBiliClient biliClient) { if (_EndCollectNew) { return; } long room = StartRoom; var maxRoom = dbEntitys.Medals.OrderByDescending(m => m.RoomID).FirstOrDefault(); if (maxRoom != null) { room = maxRoom.RoomID + 1; } if (room > EndRoom) { _EndCollectNew = true; return; } string medalName = biliClient.GetRoomMedal(room).Result; dbEntitys.Medals.Add(new Medal { RoomID = room, MedalName = medalName, LastSearchTime = DateTime.Now, LastUpdateTime = DateTime.Now }); dbEntitys.SaveChanges(); }
public void CheckOldRoom(DbEntitys dbEntitys, BiliBiliClient biliClient) { var room = dbEntitys.Medals.Where(m => !string.IsNullOrEmpty(m.MedalName) && DateTime.Now - m.LastSearchTime > TimeSpan.FromDays(10)).OrderBy(m => m.RoomID).FirstOrDefault(); if (room != null) { room.LastSearchTime = DateTime.Now; string medalName = biliClient.GetRoomMedal(room.RoomID).Result; if (!string.IsNullOrEmpty(medalName) && room.MedalName != medalName) { room.MedalName = medalName; room.LastUpdateTime = DateTime.Now; } dbEntitys.SaveChanges(); } }