public async Task <IActionResult> Get(string id)
        {
            logger.LogInformation("In Get action with id: {Id}", id);

            var delivery = await deliveryRepository.GetAsync(id);

            if (delivery == null)
            {
                logger.LogDebug("Delivery id: {Id} not found", id);
                return(NotFound());
            }

            return(Ok(delivery));
        }
        private async Task <Delivery> GetDelivery(int deliveryId)
        {
            var delivery = await _deliveryRepository.GetAsync(deliveryId);

            _existsDelivery.EnforceRule(delivery, $"Delivery with id {deliveryId} not found");
            return(delivery);
        }
        public async Task <DeliveryDto> GetAsync(Guid deliveryId)
        {
            if (deliveryId == default)
            {
                throw new ArgumentException("Delivery id is invalid.", nameof(deliveryId));
            }

            var delivery = await _deliveryRepository.GetAsync(deliveryId);

            if (delivery == null)
            {
                throw new Exception($"Could not find delivery with id = '{deliveryId}'.");
            }

            return(_mapper.Map <Delivery, DeliveryDto>(delivery));
        }
        private async Task <Delivery> GetDelivery(int deliveryId)
        {
            var delivery = await _deliveryRepository.GetAsync(d =>
                                                              d.Id == deliveryId &&
                                                              d.PartnerId == _userContext.UserDetails.PartnerId &&
                                                              d.State == DeliveryState.Approved);

            _existsDelivery.EnforceRule(delivery, $"Delivery with id {deliveryId} not found");
            return(delivery);
        }
Example #5
0
        public async Task <ActionResult> GetAsync(Guid id)
        {
            var order = await _deliveryRepository.GetAsync(id);

            if (order == null)
            {
                return(NotFound());
            }
            return(Ok(order));
        }
Example #6
0
        private async Task <Delivery> GetDelivery(int deliveryId)
        {
            var delivery = await _deliveryRepository.GetAsync(d =>
                                                              d.Id == deliveryId &&
                                                              d.UserId == _userContext.UserDetails.UserConsumerMarketId &&
                                                              d.State == DeliveryState.Created &&
                                                              d.AccessWindow.StartTime > DateTime.UtcNow);

            _existsDelivery.EnforceRule(delivery, $"Delivery with id {deliveryId} not found");
            return(delivery);
        }
        private async Task <Delivery> GetDelivery(int deliveryId)
        {
            var delivery = await _deliveryRepository.GetAsync(d =>
                                                              d.Id == deliveryId &&
                                                              _userContext.UserDetails.Role == Role.Partner
                                                              ?d.PartnerId == _userContext.UserDetails.PartnerId
                                                              : d.UserId == _userContext.UserDetails.UserConsumerMarketId &&
                                                              (d.State == DeliveryState.Created ||
                                                               d.State == DeliveryState.Approved));

            _existsDelivery.EnforceRule(delivery, $"Delivery with id {deliveryId} not found");
            return(delivery);
        }
Example #8
0
        public async Task <bool> Handle(SetAvailableDeliveryStatusCommand message, CancellationToken cancellationToken)
        {
            var delivery = await _deliveryRepository.GetAsync(message.DeliveryId);

            if (delivery == null)
            {
                return(false);
            }

            _logger.LogInformation("----- Setting Delivery status to Available: {@Delivery}", delivery);

            delivery.SetDeliveryAvailableStatus();

            return(await _deliveryRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }
        public async Task Handle(DeliveryStatusChangedToCourierPickedUpIntegrationEvent @event)
        {
            var delivery = await _deliveryRepository.GetAsync(@event.DeliveryId);

            if (delivery == null)
            {
                throw new DeliveryDomainException($"Delivery not found with specified id: {@event.DeliveryId}");
            }

            _logger.LogInformation("----- Setting Delivery status to CourierPickedUp: {@delivery}", delivery);

            delivery.SetCourierPickedUpDeliveryStatus();

            await _deliveryRepository.UnitOfWork.SaveEntitiesAsync();
        }
Example #10
0
        public async Task <Delivery> TrackJob(string code)
        {
            try
            {
                var data = await _deliveryRepository
                           .GetAsync(x => x.Code == code,
                                     includeProperties : "Warehouse.Location,Destination,Direction.Steps");

                return(data.FirstOrDefault());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #11
0
        public async Task <bool> Handle(DeleteDeliveryCommand message, CancellationToken cancellationToken)
        {
            var delivery = await _deliveryRepository.GetAsync(message.DeliveryId);

            if (delivery == null)
            {
                return(false);
            }

            _logger.LogInformation("----- Deleting Delivery: {@DeliveryLocation}", delivery);

            _deliveryRepository.Delete(delivery);

            return(await _deliveryRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }
        public async Task Handle(CourierAssignedToDeliveryIntegrationEvent @event)
        {
            var delivery = await _deliveryRepository.GetAsync(@event.DeliveryId);

            if (delivery == null)
            {
                throw new DeliveryDomainException($"Delivery not found with specified id: {@event.DeliveryId}");
            }

            delivery.AssignCourier(@event.CourierId);

            _logger.LogInformation("----- Courier assigned to delivery: {@delivery}", delivery);

            await _deliveryRepository.UnitOfWork.SaveEntitiesAsync();
        }
Example #13
0
 public async Task <DeliveryDto> GetAsync(int deliveryId)
 {
     return(_mapper.Map <DeliveryDto>(await _deliveryRepository.GetAsync(deliveryId)));
 }