예제 #1
0
        public ShipmentEntity CreateShipment(ShipmentEntity entity)
        {
            entity.IdShipment  = Guid.NewGuid();
            entity.CreatedDate = DateTime.Now;
            entity.UpdatedDate = DateTime.Now;

            _shipmentRepository.Add(entity);

            return(entity);
        }
        public async Task <bool> HandleAsync(CompleteDraftImportNotification message)
        {
            var draft = await draftImportNotificationRepository.Get(message.ImportNotificationId);

            var assessment =
                await importNotificationAssessmentRepository.GetByNotification(message.ImportNotificationId);

            var result = await importNotificationValidator.ValidateAsync(draft);

            if (result.IsValid && assessment.Status == ImportNotificationStatus.NotificationReceived)
            {
                var notification =
                    await importNotificationRepository.Get(message.ImportNotificationId);

                var exporter           = mapper.Map <Exporter>(draft.Exporter);
                var facilityCollection = mapper.Map <FacilityCollection>(draft.Facilities, draft.Preconsented);
                var importer           = mapper.Map <Importer>(draft.Importer);
                var producer           = mapper.Map <Producer>(draft.Producer);
                var shipment           = mapper.Map <Shipment>(draft.Shipment, draft.Preconsented);

                var transportRoute = new Domain.ImportNotification.TransportRoute(message.ImportNotificationId,
                                                                                  mapper.Map <StateOfExport>(draft.StateOfExport),
                                                                                  mapper.Map <StateOfImport>(draft.StateOfImport));

                if (!draft.TransitStates.HasNoTransitStates)
                {
                    transportRoute.SetTransitStates(
                        new TransitStateList(draft.TransitStates.TransitStates.Select(t => mapper.Map <TransitState>(t))));
                }

                var wasteOperation = mapper.Map <WasteOperation>(draft.WasteOperation, notification);
                var wasteType      = mapper.Map <Domain.ImportNotification.WasteType>(draft.WasteType, draft.ChemicalComposition.Composition);

                exporterRepository.Add(exporter);
                facilityRepository.Add(facilityCollection);
                importerRepository.Add(importer);
                producerRepository.Add(producer);
                shipmentRepository.Add(shipment);
                transportRouteRepository.Add(transportRoute);
                wasteOperationRepository.Add(wasteOperation);
                wasteTypeRepository.Add(wasteType);

                assessment.Submit();

                await context.SaveChangesAsync();
            }

            return(result.IsValid);
        }
예제 #3
0
        public IHttpActionResult PostShipment(ShipmentsModel shipment)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbShipment = new Shipment();

            _shipmentRepository.Add(dbShipment);

            _unitOfWork.Commit();

            shipment.ShipmentId = dbShipment.ShipmentId;

            return(CreatedAtRoute("DefaultApi", new { id = shipment.ShipmentId }, shipment));
        }
 public IActionResult Add([FromBody] Shipment shipment)
 {
     _shipmentRepository.Add(shipment);
     return(CreatedAtAction("Get", new { shipment.ShipmentId }, shipment));
 }
예제 #5
0
 public async Task <Shipment> AddShipment(Shipment newShipment)
 {
     return(await _shipmentRepository.Add(newShipment));
 }