예제 #1
0
 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();
 }
예제 #2
0
        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));
            }
        }
예제 #3
0
        public async Task <WaybillId> Add(PaperWaybill waybill)
        {
            var dto = await CreateEmptyWaybillDto(waybill);

            dto.FillFromPaperWaybillModel(waybill);
            await _context.SaveChangesAsync();

            return(waybill.Id);
        }
예제 #4
0
        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);
        }
예제 #6
0
        private async Task FillContent(PaperWaybill waybill, WaybillFile file)
        {
            var waybillContent = await _parser.Parse(file.CreateFileStream());

            waybill.SetContent(waybillContent);
        }