using System.Collections.Generic; using System.Text.Json; using System.Threading.Tasks; using Win_in.Sfs.Wms.DataExchange.Domain; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS; namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent; public class ArriveNoteWriter : IWriter { private readonly IArriveNoteManager _arriveNoteNoteManager; private readonly IOutgoingToExternalManager _outgoingToExternalManager; public ArriveNoteWriter( IArriveNoteManager arriveNoteNoteManager , IOutgoingToExternalManager outgoingToExternalManager) { _arriveNoteNoteManager = arriveNoteNoteManager; _outgoingToExternalManager = outgoingToExternalManager; } public virtual async Task WriteAsync(List outgoingDataList) { var arriveNotes = await BuildArriveNotesAsync(outgoingDataList).ConfigureAwait(false); //写Arrive数据到EOS await _arriveNoteNoteManager.PostListAsync(arriveNotes).ConfigureAwait(false); await _outgoingToExternalManager.ArchiveManyAsync(outgoingDataList).ConfigureAwait(false); } private static async Task> BuildArriveNotesAsync(List outgoingData) { await Task.CompletedTask.ConfigureAwait(false); var arriveList = new List(); foreach (var outgoingToExternal in outgoingData) { var receipt = JsonSerializer.Deserialize(outgoingToExternal.DestinationDataContent); arriveList.Add(receipt); } return arriveList; } }