private void InitializeTimerUpdatingVictimThread() { threadUpdatingVictim = new Thread(() => { while (threadUpdatingVictim.IsAlive) { try { Console.WriteLine("victimsNeedUpdate length: " + episodesNeedUpdateToLive.Count); while (isUpating || episodesNeedUpdateToLive.Count == 0) { Thread.Sleep(1000); } var enutl = episodesNeedUpdateToLive[0]; using (var context = new NTVideoEntities()) { var episodeNeedUpdateQuery = from e in context.episode_need_update_to_live where e.status == 0 && e.episodeUpdateToLiveId == enutl.episodeUpdateToLiveId //status = 0(not ok), 1(ok) select e; var episodeNeedUpdateToLive = episodeNeedUpdateQuery.FirstOrDefault(); if (episodeNeedUpdateToLive != null) { isUpating = true; victimServiceInstance = (BaseVictim)VICTIM_INSTANCE[episodeNeedUpdateToLive.victim.victimTypeNo.ToString()]; episodeNeedUpdateToLive.victim.playListHtml = getEpisodePlayerInfoByIndexAndRebuildPlayListHtml(Int32.Parse(episodeNeedUpdateToLive.serverIndex.ToString()), Int32.Parse(episodeNeedUpdateToLive.episodeIndex.ToString()), episodeNeedUpdateToLive.victim.playListHtml); episodeNeedUpdateToLive.status = 1; context.Entry(episodeNeedUpdateToLive.victim).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); episodesNeedUpdateToLive.RemoveAt(0); isUpating = false; } } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } episodesNeedUpdateToLive.RemoveAt(0); isUpating = false; } } }); threadUpdatingVictim.IsBackground = true; threadUpdatingVictim.SetApartmentState(ApartmentState.STA); threadUpdatingVictim.Start(); }
private bool saveDownloadInfoToDB(download updateDownload, string name, string savePath, string status, dynamic movie, dynamic victim, NTVideoEntities context) { victim.downloadStatus = status; if (updateDownload == null) { var download = new download() { victimId = victim.victimId, name = name, savePath = savePath, status = status }; victim.downloads.Add(download); context.Entry(victim).State = System.Data.Entity.EntityState.Modified; } else { updateDownload.status = status; context.Entry(updateDownload).State = System.Data.Entity.EntityState.Modified; } context.SaveChanges(); return(true); }
public bool beginUpdateContent() { try { using (var context = new NTVideoEntities()) { var victimUpdateQuery = from m in context.movies from v in context.victims where m.movieId == v.movieId && m.isPublic == 1 && v.victimTypeNo == victimTypeNo && !(movieUpdatedTemp.Contains(v.movieDetailHref)) orderby v.isContinue descending, m.publishYear descending, v.priority descending, v.viewed descending select new { m, v }; var updateInfo = victimUpdateQuery.FirstOrDefault(); if (updateInfo != null) { updatePositionTypeOnHomePage(updateInfo.m); context.Entry(updateInfo.m).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); var victim = updateInfo.v; var victimUpdate = getVictim(getRootNode(victim.movieDetailHref.Replace("http://", "http://www."))); if (victimUpdate != null) { if (victim.currentEpisode < victimUpdate.currentEpisode || victim.schedule != victimUpdate.schedule || victim.viewed < victimUpdate.viewed || victim.priority < victimUpdate.priority || victim.isTrailer != victimUpdate.isTrailer || victim.playListHtml != victim.playListHtml) { logForm.append("===================== Begin update: " + victim.movieHref); victim.dateUpdate = victimUpdate.dateUpdate; victim.currentEpisode = victimUpdate.currentEpisode; victim.totalEpisode = victimUpdate.totalEpisode; victim.isContinue = victimUpdate.isContinue; victim.hasTrans = victimUpdate.hasTrans; victim.hasDubbing = victimUpdate.hasDubbing; victim.hasSub = victimUpdate.hasSub; victim.hasTrans = victimUpdate.hasTrans; victim.quality = victimUpdate.quality; victim.updateState = victim.updateState + 1; victim.viewed = victimUpdate.viewed; victim.rating = victimUpdate.rating; victim.schedule = victimUpdate.schedule; victim.isTrailer = victimUpdate.isTrailer; victim.playListHtml = victimUpdate.playListHtml; context.Entry(victim).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); } } else { updateInfo.m.isPublic = 0; context.Entry(updateInfo.m).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); } movieUpdatedTemp.Add(victim.movieDetailHref); } } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { logForm.append(String.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { logForm.append(String.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } } return(true); }