public static void FillFromPaperWaybillModel(this WaybillDto dto, PaperWaybill model) { FillFromWaybillModel(dto, model); dto.SourceFileId = model.SourceFileId.ToGuid(); dto.FillValidationResult(model.StructuralValidationResult, model.Id); dto.InteractionState = model.InteractionState.MapToDto(); }
public async Task ImportFromFiles( OrderId orderId, IReadOnlyCollection <File> files) { var uploadDate = _timeProvider.Now(); var waybillIds = new List <WaybillId>(); foreach (var file in files) { var waybillFile = new WaybillFile(file, uploadDate); var fileId = await _waybillFileRepository.Save(waybillFile); var waybill = new PaperWaybill(orderId, fileId); var waybillId = await _paperWaybillRepository.Add(waybill); waybillIds.Add(waybillId); } //TODO [SSS-497] use Hangfire-PRO to allow batch job operations foreach (var waybillId in waybillIds) { _eventPublisher.Raise(new PaperWaybillImported(waybillId)); } }
public async Task <WaybillId> Add(PaperWaybill waybill) { var dto = await CreateEmptyWaybillDto(waybill); dto.FillFromPaperWaybillModel(waybill); await _context.SaveChangesAsync(); return(waybill.Id); }
public async Task Update(PaperWaybill waybill) { var dto = await QueryById(waybill.Id) .SingleOrDefaultAsync(); RemoveChildren(dto); await _context.SaveChangesAsync(); dto.FillFromPaperWaybillModel(waybill); _context.Waybills.Update(dto); await _context.SaveChangesAsync(); }
private async Task FillValidationResult(PaperWaybill waybill) { var validationResult = waybill.Content.Validate(); waybill.SetStructuralValidationResult(validationResult); }
private async Task FillContent(PaperWaybill waybill, WaybillFile file) { var waybillContent = await _parser.Parse(file.CreateFileStream()); waybill.SetContent(waybillContent); }