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

            var delivery = await deliveryRepository.GetAsync(id);

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

            // Adds the delivery cancelled status event
            var deliveryStatusEvent = new DeliveryStatusEvent {
                DeliveryId = id, Stage = DeliveryEventType.Cancelled
            };
            await deliveryStatusEventRepository.AddAsync(deliveryStatusEvent);

            // forwards cancelled delivery to the Delivery History
            var allEvents = await deliveryStatusEventRepository.GetByDeliveryIdAsync(id);

            await deliveryHistoryService.CancelAsync(delivery, allEvents.ToArray());

            // logical delivery deletion
            await deliveryRepository.DeleteAsync(id, delivery);

            return(Ok());
        }
        public async Task <IActionResult> DeleteAsync(int id)
        {
            var result = await _deliveryRepository.DeleteAsync(id);


            return(Ok(result));
        }
示例#3
0
        public async Task <IActionResult> Delete(string id)
        {
            logger.LogInformation("In Delete action with id: {Id}", id);

            var delivery = await deliveryRepository.GetAsync(id);

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

            // Adds the delivery cancelled status event
            var deliveryTrackingEvent = new DeliveryTrackingEvent {
                DeliveryId = id, Stage = DeliveryStage.Cancelled
            };
            await deliveryTrackingRepository.AddAsync(deliveryTrackingEvent);

            // logical delivery deletion
            await deliveryRepository.DeleteAsync(id, delivery);

            return(Ok());
        }
        public async Task <IActionResult> Delete(int id)
        {
            Delivery existing = await deliveryRepository.FindByIdAsync(id);

            if (existing == null)
            {
                return(NotFound());
            }

            bool deleted = await deliveryRepository.DeleteAsync(existing);

            if (deleted)
            {
                return(new OkResult());
            }

            return(BadRequest());
        }