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)); }
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()); }