/// <summary> /// 获取并保存事件视频详情 /// </summary> public async Task GetVideoDetailAsync() { //读取数据 var content = File.ReadAllText("C9EventVideos.json", Encoding.UTF8); var eventVideos = JsonConvert.DeserializeObject <List <C9Articles> >(content); //eventVideos = eventVideos.Take(20).ToList(); var allVideoDetail = new ConcurrentBag <EventVideo>(); int totalNumber = eventVideos.Count; Console.WriteLine($"共 {totalNumber} 个视频"); int i = 1; var tasks = new List <Task>(); foreach (var item in eventVideos) { int currentIndex = i; var task = Task.Run(() => getEventVideoDetailAsync(currentIndex, item)); tasks.Add(task); i++; } async Task getEventVideoDetailAsync(int currentIndex, C9Articles item) { Console.WriteLine($"开始获取第 {currentIndex} 个视频"); var videoDetail = await _helper.GetEventVideoPage(item); Console.WriteLine($"获取第 {currentIndex} 个视频完成"); if (videoDetail != null) { allVideoDetail.Add(videoDetail); } } //TODO 去重 Task.WaitAll(tasks.ToArray()); var wrongData = new EventVideo(); try { Console.WriteLine("开始入库"); foreach (var item in allVideoDetail) { Context.EventVideo.AddRange(item); wrongData = item; await Context.SaveChangesAsync(); } Console.WriteLine("入库完成"); } catch (Exception e) { System.Console.WriteLine(e.Message); Console.WriteLine("Wrong Data:" + JsonConvert.SerializeObject(wrongData)); } }
public void AddVideo(EventVideo eventVideo) { Db.EventVideos.Add(eventVideo); Db.SaveChanges(); }
public static EventVideo ToEntity(this EventVideoModel model, EventVideo destination) { return(model.MapTo(destination)); }
public static EventVideoModel ToModel(this EventVideo entity) { return(entity.MapTo <EventVideo, EventVideoModel>()); }
public void UpdateEventVideo(EventVideo eventVideo) { _eventVideoRepository.Update(eventVideo); }
public void InsertEventVideo(EventVideo eventVideo) { _eventVideoRepository.Insert(eventVideo); }