PushResults ProcessPriceFiles() { var result = new PushResults(); var readyFiles = _readyDirectory.GetReadyFiles(FileTypes.Price); if (!readyFiles.Any()) { _logger.Information("Found no {FileType} files to process.", FileTypes.Price); } foreach (var readyfile in readyFiles) { var vendors = _fileHelpersCache.Get<VendorPriceEntry>() .ReadString(readyfile.ReadToEnd()) .GroupBy(x => x.Vendor); foreach (var v in vendors) { _costsUpdater.Update(new UpdateRequest<PriceHeader, VendorPriceEntry> { Header = new PriceHeader(), Details = v.ToList() }); } _archiveDirectory.ArchiveFile(readyfile); } return result; }
PushResults ProcessFiles(PushOptions options) { var result = new PushResults(); if (options.ProcessPrices) { var r = ProcessPriceFiles(); result.Merge(r); } if (options.ProcessQty) { var r = ProcessQtyFiles(); result.Merge(r); } return result; }
PushResults ProcessQtyFiles() { var result = new PushResults(); var readyFiles = _readyDirectory.GetReadyFiles(FileTypes.Qty); if (!readyFiles.Any()) { _logger.Information("Found no {FileType} files to process.", FileTypes.Qty); } foreach (var readyfile in readyFiles) { var vendors = _fileHelpersCache.Get<VendorQtyEntry>() .ReadString(readyfile.ReadToEnd()) .GroupBy(x => x.VendorJdeId); //convert rows into a request to update //batch based foreach (var v in vendors) { var timeOfDay = _systemClock.Now(); var header = new UpdateQuantityHeader { EffectiveDate = timeOfDay, //TODO: Convert to supplier address number VendorJdeId = v.Key, //TODO: populate DocumentNumber = timeOfDay.Millisecond, //TODO: populate RecordSequence = timeOfDay.DayOfYear, //"164635" TimeOfDay = JdeDate.ToJdeTime(timeOfDay), }; var request = new UpdateRequest<UpdateQuantityHeader, VendorQtyEntry> { Header = header, Details = v.ToList() }; var r = _inventoryUpdater.Value.Update(request); result.AddMessages(r.Messages); } _archiveDirectory.ArchiveFile(readyfile); } return result; }
public void Merge(PushResults pushResults) { Messages.AddRange(pushResults.Messages); }