public ItemManager(IGameData gameData, IItemReader itemReader) { var file = gameData.Files[$"AM2_CPU"].Files[1]; file.Position = 0; var data = AmigaExecutable.Read(file).Last(h => h.Type == AmigaExecutable.HunkType.Data).Data; file = new DataReader(data); // First find the item offset (the lamed ailment is the first item) long offset = file.FindString("LAMED", 0); if (offset == -1) { offset = file.FindString("GELÄHMT", 0); } if (offset == -1) { throw new AmbermoonException(ExceptionScope.Data, "Could not find item data in AM2_CPU."); } offset -= 40; // item name has a 40 byte offset to the item data offset file.Position = (int)offset; for (uint i = 1; i <= 402; ++i) // there are 402 items { items.Add(i, Item.Load(itemReader, file)); } }
public DataViewModel(ISellerProvider sellerProvider, IItemsProvider itemsProvider, IMarketService dataService, IItemReader itemReader) { _dataService = dataService; _itemReader = itemReader; Sellers = new ObservableCollection <SellerViewModel>(sellerProvider.Sellers); Items = itemsProvider.Items; }
public ParamPageReader(SiteParameter siteParameter, IHtmlReader htmlReader, IItemReader itemReader) { this.siteParameter = siteParameter ?? throw new ArgumentNullException(nameof(siteParameter)); this.htmlReader = htmlReader ?? throw new ArgumentNullException(nameof(htmlReader)); this.itemReader = itemReader ?? throw new ArgumentNullException(nameof(itemReader)); this.pageNumber = this.siteParameter.StartNumber; }
public static ISiteCrawler Create(SiteParameter siteParameter) { if (siteParameter == null) { throw new ArgumentNullException(nameof(siteParameter)); } string dataServiceName = GetValueOrDefault(siteParameter.CustomProcessors, "IDataService"); string htmlReaderName = GetValueOrDefault(siteParameter.CustomProcessors, "IHtmlReader"); string pageParserName = GetValueOrDefault(siteParameter.CustomProcessors, "IPageParser"); string itemReaderName = GetValueOrDefault(siteParameter.CustomProcessors, "IItemReader"); string pageReaderName = GetValueOrDefault(siteParameter.CustomProcessors, "IPageReader"); IHtmlReader htmlReader = Container.Resolve <IHtmlReader>(htmlReaderName); ParameterOverride htmlReaderParameter = new ParameterOverride("htmlReader", htmlReader); ParameterOverride siteParameterParameter = new ParameterOverride("siteParameter", siteParameter); IItemReader itemReader = Container.Resolve <IItemReader>(itemReaderName, siteParameterParameter); ParameterOverride itemReaderParameter = new ParameterOverride("itemReader", itemReader); IPageReader pageReader = Container.Resolve <IPageReader>(pageReaderName, siteParameterParameter, htmlReaderParameter, itemReaderParameter); IPageParser pageParser = Container.Resolve <IPageParser>(pageParserName, siteParameterParameter, htmlReaderParameter); return(new GeneralSiteCrawler(pageReader, pageParser)); }
public static Item Load(IItemReader itemReader, IDataReader dataReader) { var item = new Item(); itemReader.ReadItem(item, dataReader); return(item); }
public MainViewModel(IItemReader itemReader, IMarketService dataService, ISellerProvider sellerProvider, IItemsProvider itemsProvider) { _sellerProvider = sellerProvider; _itemsProvider = itemsProvider; _itemReader = itemReader; CashRegisterViewModel = new CashRegisterViewModel(sellerProvider, itemsProvider); DataViewModel = new DataViewModel(sellerProvider, itemsProvider, dataService, itemReader); }
public ItemRespository(IItemCreator itemCreator, IMediaReader mediaReader, IFieldReader fieldReader, IAuditCreator auditCreator, IItemReader itemReader, IItemUpdater itemUpdater, IAuditReader auditReader) { _itemCreator = itemCreator; _mediaReader = mediaReader; _fieldReader = fieldReader; _auditCreator = auditCreator; _itemReader = itemReader; _itemUpdater = itemUpdater; _auditReader = auditReader; }
/// <summary> /// Custom constructor /// </summary> /// <param name="itemReader"></param> /// <param name="repeatOperations"></param> public SimpleChunkProvider(IItemReader <T> itemReader, IRepeatOperations repeatOperations) { ItemReader = itemReader; _repeatOperations = repeatOperations; }
/// <summary> /// This class can be instantiated by a TeaFile only, thus it is internal. /// </summary> internal ItemCollection(IItemReader reader) { this.reader = reader; }
public ItemsController(IItemReader reader, IMapper mapper) { _reader = reader; _mapper = mapper; }
public ItemCreator(IFieldUpdater iFieldUpdater, IItemReader iItemReader) { _iFieldUpdater = iFieldUpdater; _itemReader = iItemReader; }
public IEnumerable <Article> GetArticals() { int start = 1999; int end = DateTime.Now.Year; for (int year = start; year <= end; year++) { IEnumerable <Article> articles = null; List <string> urls = new List <string>(); if (this.siteParameter.SiteName.Contains("总局令")) { if (year < 2011) { continue; } else if (year >= 2011 && year < 2013) { this.siteParameter.ItemPattern = quality2012; } else { this.siteParameter.ItemPattern = quality2013; } this.itemReader = new RegexItemReader(this.siteParameter); } if (!string.IsNullOrWhiteSpace(this.siteParameter.StartUrl)) { Logging.WriteEntry(this, LogType.Information, $"Parsing {this.siteParameter.StartUrl}"); string url = this.siteParameter.StartUrl.Replace("year", year.ToString()); string html = null; try { html = this.htmlReader.GetHtml(url); } catch (Exception ex) { Logging.WriteEntry(this, LogType.Error, $"Request {url} error.", ex); } if (string.IsNullOrWhiteSpace(html)) { yield break; } if (this.iframePattern.IsMatch(html)) { var iframeUrl = this.iframePattern.Match(html).Groups[1].Value; url = iframeUrl.ToAbsoluteUrl(url); html = this.htmlReader.GetHtml(url); } articles = this.itemReader .GetArticles(html, url).Distinct(new ArticleCompare()) .Where(article => !urls.Contains(article.Url)); foreach (var article in articles) { urls.Add(article.Url); Logging.WriteEntry(this, LogType.Information, $"Getting {article.Url}"); yield return(article); } } this.pageNumber = this.siteParameter.StartNumber; do { string url = string.Format(this.siteParameter.UrlPattern, this.pageNumber); url = url.Replace("year", year.ToString()); this.pageNumber += this.siteParameter.PageStepNumber ?? 1; Logging.WriteEntry(this, LogType.Information, $"Parsing {url}"); string html = null; try { html = this.htmlReader.GetHtml(url); } catch (Exception ex) { Logging.WriteEntry(this, LogType.Error, $"Request {url} error.", ex); } if (string.IsNullOrWhiteSpace(html)) { yield break; } if (this.iframePattern.IsMatch(html)) { var iframeUrl = this.iframePattern.Match(html).Groups[1].Value; url = iframeUrl.ToAbsoluteUrl(url); html = this.htmlReader.GetHtml(url); } articles = this.itemReader .GetArticles(html, url).Distinct(new ArticleCompare()) .Where(article => !urls.Contains(article.Url)); foreach (var article in articles) { if (urls.Contains(article.Url)) { yield break; } urls.Add(article.Url); Logging.WriteEntry(this, LogType.Information, $"Getting {article.Url}"); yield return(article); } }while (articles.Count() > 0); } }
public ItemUpdater(IFieldUpdater iFieldUpdater, IItemReader itemReader) { _iFieldUpdater = iFieldUpdater; _itemReader = itemReader; }