public void Fill(VideoForUser videoForUser) { long languageId = new LanguagesQuery(LanguageShortName.Unknown, LanguageShortName.Unknown).GetByShortName( LanguageShortName.En).Id; string title = videoForUser.Title; string htmlCode = videoForUser.HtmlCode; byte[] image = GetImage(title, htmlCode); var videosQuery = new VideosQuery(languageId); VideoForUser result = videosQuery.GetOrCreate(VideoType.Clip, videoForUser, image, null); if (result != null) { Console.WriteLine("Видео \"{0}\" успешно добавлено", title); } else { Console.WriteLine("Не удалось добавить видео \"{0}\"!!!", title); } }
public void Process() { long languageId = new LanguagesQuery(LanguageShortName.Unknown, LanguageShortName.Unknown).GetByShortName( _shortName).Id; const int MAX_DOMAIN_TO_PROCESS = 10; List <Tuple <string, List <string> > > linksByDomains = _linksHelper.Analyze(); foreach (var tuple in linksByDomains.Take(MAX_DOMAIN_TO_PROCESS)) { IVideoDataGetter videoDataGetter = GetVideoDataGetterByDomain(tuple.Item1); if (videoDataGetter == null) { continue; } int failCount = 0; int successCount = 0; List <string> links = tuple.Item2; foreach (string link in links) { string encodedLink = FileHelper.EncodeFileName(link); IVideoData videoData = GetVideoDataFromCache(videoDataGetter, encodedLink); if (videoData == null) { //для этой ссылки данных нет в кэше - получить их от Getter'а videoData = videoDataGetter.GetVideoData(link); } if (videoData == null) { Console.WriteLine("Для ссылки {0} НЕ удалось получить данные!", link); failCount++; continue; } SaveVideoDataToCache(videoDataGetter, encodedLink, videoData); if (videoDataGetter.IsInvalid(videoData, _shortName)) { Console.WriteLine("Для ссылки {0} данные некорректны!", link); failCount++; continue; } var videosQuery = new VideosQuery(languageId); var videoForUser = new VideoForUser(videoData.Title, videoData.HtmlCode); //TODO: поиск дубликатов видео //TODO: сохранять дополнительную информацию в БД VideoForUser result = videosQuery.GetOrCreate(VideoType.Movie, videoForUser, videoData.ThumnailImage, videoData.Rating); if (result != null) { successCount++; } else { Console.WriteLine("Не удалось добавить видео \"{0}\"!!!", videoData.Title); } } Console.WriteLine("Обработан домен {0} из {1} ссылок успешно сохранены {2}, не удалось сохранить {3}", tuple.Item1, links.Count, successCount, failCount); } }