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; }