public async Task <ActionResult <List <AssignmentResource> > > GetAssignments(
            Guid shipmentIdentity,
            [FromServices] ShipmentQuery shipmentQuery)
        {
            List <AssignmentResource> assignments = await shipmentQuery
                                                    .GetAssignmentsAsync(shipmentIdentity);

            if (assignments is null)
            {
                return(NotFound());
            }

            return(assignments);
        }
        public async Task <ActionResult <List <ContainerResource> > > GetPackedContainers(
            Guid shipmentIdentity,
            [FromServices] ShipmentQuery shipmentQuery)
        {
            List <ContainerResource> containers = await shipmentQuery
                                                  .GetPackedContainersAsync(shipmentIdentity);

            if (containers is null)
            {
                return(NotFound());
            }

            return(containers);
        }
        public async Task <ActionResult <ShipmentResource> > GetShipment(
            Guid shipmentIdentity,
            [FromServices] ShipmentQuery shipmentQuery)
        {
            ShipmentResource shipment = await shipmentQuery
                                        .GetShipmentAsync(shipmentIdentity);

            if (shipment is null)
            {
                return(NotFound());
            }

            return(shipment);
        }
        public async Task <ActionResult <ContainerResource> > GetPackedContainer(
            Guid shipmentIdentity,
            Guid containerIdentity,
            [FromServices] ShipmentQuery shipmentQuery)
        {
            ContainerResource container = await shipmentQuery
                                          .GetPackedContainerAsync(shipmentIdentity, containerIdentity);

            if (container is null)
            {
                return(NotFound());
            }

            return(container);
        }
        public async Task <ActionResult <List <CargoResource> > > GetCargosOfPackedContainer(
            Guid shipmentIdentity,
            Guid containerIdentity,
            [FromQuery] CargoParams queryParams,
            [FromServices] ShipmentQuery shipmentQuery)
        {
            List <CargoResource> cargos = await shipmentQuery
                                          .GetCargosOfPackedContainerAsync(shipmentIdentity, containerIdentity, queryParams);

            if (cargos is null)
            {
                return(NotFound());
            }

            return(cargos);
        }
 public async Task <List <ShipmentResource> > GetShipments(
     [FromQuery] ShipmentParams queryParams,
     [FromServices] ShipmentQuery shipmentQuery)
 => await shipmentQuery.GetShipmentsAsync(queryParams);