public static WaybillItemDto MapToDto( this WaybillItem model, WaybillId waybillId, int sequenceNumber) { return(new WaybillItemDto { SequenceNumber = sequenceNumber, SupplierWaybillId = waybillId.Value, RezonItemId = model.ItemId?.Value, Code = model.Code, Name = model.Name, Amount = model.MonetaryValue.Amount, Unit = model.Unit?.Name, UnitOkeiCode = model.Unit?.OkeiCode, PriceWithoutVat = model.MonetaryValue.PriceWithoutVat, SumWithoutVat = model.MonetaryValue.SumWithoutVat, SumWithVat = model.MonetaryValue.SumWithVat, VatPercent = model.MonetaryValue.VatPercent, VatSum = model.MonetaryValue.VatSum, CountryOfOriginCode = model.CustomsInfo?.CountryOfOriginCode, CountryOfOriginName = model.CustomsInfo?.CountryOfOriginName, CustomsDeclarationNumber = model.CustomsInfo?.CustomsDeclarationNumber, }); }
private static void FillContentFromModel( this WaybillDto parentDto, WaybillContent model, WaybillId waybillId) { if (model == null) { parentDto.Content = null; return; } if (parentDto.Content == null) { parentDto.Content = new WaybillContentDto(); } var dto = parentDto.Content; dto.SupplierWaybillId = waybillId.Value; dto.DocumentNumber = model.Header.DocumentNumber; dto.DocumentDate = model.Header.DocumentDate; dto.Consignee = model.Header.Consignee; dto.Items = model.Items .Select((item, i) => item.MapToDto(waybillId: waybillId, sequenceNumber: i + 1)) .ToList(); dto.TotalVat = model.Totals.TotalVatSum; dto.TotalSumWithVat = model.Totals.TotalSumWithVat; dto.TotalSumWithoutVat = model.Totals.TotalSumWithoutVat; }
async Task <Waybill> IWaybillRepository.Get(WaybillId waybillId) { var dto = await QueryById(waybillId) .SingleOrDefaultAsync(); return(dto.MapToPaperWaybill()); }
private static WaybillItemValidationResultDto MapToDto( this WaybillItemValidationResult model, WaybillId waybillId, int sequenceNumber) { return(new WaybillItemValidationResultDto { WaybillId = waybillId.Value, WaybillItemSequenceNumber = sequenceNumber, HasEmptyItemId = model.HasEmptyItemId, HasEmptyCode = model.HasEmptyCode, HasEmptyName = model.HasEmptyName, HasEmptyOkeiUnitCode = model.HasEmptyOkeiUnitCode, HasEmptyUnitName = model.HasEmptyUnitName, HasEmptyAmount = model.MonetaryValueValidationResult.HasEmptyAmount, HasEmptyPriceWithoutVat = model.MonetaryValueValidationResult .HasEmptyPriceWithoutVat, HasInvalidVatPercent = model.MonetaryValueValidationResult.HasInvalidVatPercent, HasEmptySumWithVat = model.MonetaryValueValidationResult.HasEmptySumWithVat, HasEmptySumWithoutVat = model.MonetaryValueValidationResult.HasEmptySumWithoutVat, HasInvalidVatSum = model.MonetaryValueValidationResult.HasInvalidVatSum, HasInvalidSumWithVat = model.MonetaryValueValidationResult.HasInvalidSumWithVat, HasEmptyCustomsDeclarationNumber = model .CustomsInfoValidationResult.HasEmptyCustomDeclarationNumber, HasEmptyCountryOfOriginCode = model .CustomsInfoValidationResult.HasEmptyCountryOfOriginCode, HasEmptyCountryOfOriginName = model .CustomsInfoValidationResult.HasEmptyCountryOfOriginName }); }
private IQueryable <WaybillDto> QueryById(WaybillId waybillId) { return(_context.Waybills .Include(x => x.File) .Include(x => x.Content) .ThenInclude(x => x.Items) .Where(x => x.Id == waybillId.Value)); }
async Task <PaperWaybill> IPaperWaybillRepository.Get(WaybillId waybillId) { var dto = await QueryById(waybillId) .Where(x => x.SourceFileId != null) .SingleOrDefaultAsync(); return(dto.MapToPaperWaybill()); }
public async Task <ActionResult <WaybillsGetResponse> > Get(long supplierWaybillId) { var waybillId = new WaybillId(supplierWaybillId); var waybill = await _waybillRepository.Get(waybillId); return(WaybillsGetMapper.MapToResponse(waybill)); }
public async Task FillContent(WaybillId waybillId) { var waybill = await _waybillRepository.Get(waybillId); var file = await _waybillFileRepository.Get(waybill.SourceFileId); await FillContent(waybill, file); await _waybillRepository.Update(waybill); _eventPublisher.Raise(new WaybillParsed(waybillId)); }
private async Task <WaybillDto> CreateEmptyWaybillDto(Waybill waybill) { var dto = new WaybillDto(); await _context.Waybills.AddAsync(dto); await _context.SaveChangesAsync(); var id = new WaybillId(dto.Id); //We are setting id for further mapping waybill.SetId(id); return(dto); }
public async Task FillStructuralValidation(WaybillId waybillId) { var waybill = await _paperWaybillRepository.Get(waybillId); await FillValidationResult(waybill); await _paperWaybillRepository.Update(waybill); if (!waybill.HasValidationErrors) { _eventPublisher.Raise(new StructuralValidationPassed(waybill.Id)); } }
public PaperWaybill( WaybillId id, CephFileId sourceFileId, OrderId orderId, WaybillContent content, WaybillContentStructuralValidationResult structuralValidationResult, WaybillInteractionState interactionState) : base( id, orderId, content) { SourceFileId = sourceFileId; StructuralValidationResult = structuralValidationResult; InteractionState = interactionState; }
public static PaperWaybill MapToPaperWaybill(this WaybillDto waybillDto) { if (waybillDto == null) { throw new ArgumentNullException(nameof(waybillDto)); } var id = new WaybillId(waybillDto.Id); var fileId = new CephFileId(waybillDto.File.CephId); var orderId = new OrderId(waybillDto.OrderId); var waybillContent = waybillDto.Content?.MapToModel(); var structuralValidationResult = waybillDto.ValidationResult?.MapToModel(); var interactionState = waybillDto.InteractionState.MapToModel(); return(new PaperWaybill( id: id, sourceFileId: fileId, orderId: orderId, content: waybillContent, structuralValidationResult: structuralValidationResult, interactionState: interactionState)); }
// ReSharper disable once MemberCanBePrivate.Global public Task HandleInternal(WaybillId waybillId) { return(_waybillStructuralValidationFiller.FillStructuralValidation(waybillId)); }
public WaybillParsed(WaybillId waybillId) { WaybillId = waybillId; }
// ReSharper disable once MemberCanBePrivate.Global public Task HandleInternal(WaybillId waybillId) { return(_waybillContentFiller.FillContent(waybillId)); }
public override void SetId(WaybillId id) { ThrowIfSetMemberWhileNotInState(WaybillProcessingState.New); Id = id; }
public StructuralValidationPassed(WaybillId waybillId) { WaybillId = waybillId; }
public PaperWaybillImported(WaybillId waybillId) { WaybillId = waybillId; }
public static void FillValidationResult(this WaybillDto parentDto, WaybillContentStructuralValidationResult model, WaybillId waybillId) { if (model == null) { parentDto.ValidationResult = null; return; } if (parentDto.ValidationResult == null) { parentDto.ValidationResult = new WaybillValidationResultDto(); } var dto = parentDto.ValidationResult; dto.HasConsigneeError = model.HeaderResult.HasConsigneeError; dto.HasDocumentDateError = model.HeaderResult.HasDocumentDateError; dto.HasDocumentNumberError = model.HeaderResult.HasDocumentNumberError; dto.HasEmptySumWithoutVat = model.TotalsResult.HasEmptySumWithoutVat; dto.HasEmptyTotalVatSum = model.TotalsResult.HasEmptyTotalVatSum; dto.HasEmptySumWithVat = model.TotalsResult.HasEmptySumWithVat; dto.HasInvalidSumWithoutVat = model.TotalsResult.HasInvalidSumWithoutVat; dto.HasInvalidTotalVatSum = model.TotalsResult.HasInvalidTotalVatSum; dto.HasInvalidSumWithVat = model.TotalsResult.HasInvalidSumWithVat; dto.ItemValidationResults = model.ItemResults .Select((itemDto, i) => itemDto.MapToDto(waybillId, i + 1)) .ToList(); }