public void Remove(ITransport transport) { // XXX: Do anything else here before removing? transport.Disconnect(); transports.Remove(transport); TransportRemoved?.Invoke(this, new TransportEventArgs(transport)); this.loggingService.LogInfo("Transport {0} removed", transport); }
private async Task <bool> HandleAsync(TransportRemoved e) { using (var dbContext = GetDbContext()) { if (e != null) { var transport = await dbContext.Transports.FirstOrDefaultAsync(t => t.TransportId == e.TransportId); dbContext.Transports.Attach(transport); dbContext.Transports.Remove(transport); await dbContext.SaveChangesAsync(); } } return(true); }
public async Task <IActionResult> DeleteAsync(string transportId) { var transport = await _dbContext.Transports.FirstOrDefaultAsync(t => t.TransportId == transportId); if (transport != null) { // Delete Transport _dbContext.Transports.Attach(transport); _dbContext.Transports.Remove(transport); await _dbContext.SaveChangesAsync(); // Send Event RemoveTransport c = Mapper.Map <RemoveTransport>(transport); TransportRemoved e = Mapper.Map <TransportRemoved>(c); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); return(CreatedAtRoute("GetTransportById", new { transportId = transport.TransportId }, transport)); } return(NotFound()); }