public async Task <IActionResult> PutAsync(string transportId, [FromBody] UpdateTransport command) { if (ModelState.IsValid) { //Transport transport = Mapper.Map<Transport>(command); var transport = await _dbContext.Transports.FirstOrDefaultAsync(t => t.TransportId == transportId); if (transport != null) { // Update Transport transport.CompanyName = command.CompanyName; transport.TypeOfShipment = command.TypeOfShipment; transport.CityOfDestination = command.CityOfDestination; transport.Description = command.Description; transport.WeightInKgMax = command.WeightInKgMax; transport.ShippingCost = command.ShippingCost; await _dbContext.SaveChangesAsync(); // Send Event UpdateTransport c = Mapper.Map <UpdateTransport>(transport); TransportUpdated e = Mapper.Map <TransportUpdated>(c); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); return(CreatedAtRoute("GetTransportById", new { transportId = transport.TransportId }, transport)); } return(NotFound()); } return(BadRequest()); }
private async Task <bool> HandleAsync(TransportUpdated e) { using (var dbContext = GetDbContext()) { if (e != null) { var transport = await dbContext.Transports.FirstOrDefaultAsync(t => t.TransportId == e.TransportId); transport.CompanyName = e.CompanyName; transport.TypeOfShipment = e.TypeOfShipment; transport.CityOfDestination = e.CityOfDestination; transport.Description = e.Description; transport.WeightInKgMax = e.WeightInKgMax; transport.ShippingCost = e.ShippingCost; await dbContext.SaveChangesAsync(); } } return(true); }
public async Task Handle(UpdateTransport updateTransport, string replyTo, string correlationId) { Console.WriteLine($"[i] Updating Transport.."); Transport transport = _taskRepository.GetTransport(updateTransport.Id); transport.Name = updateTransport.Name; transport.TransportType = updateTransport.TransportType; transport.Visible = updateTransport.Visible; transport.Enabled = updateTransport.Enabled; transport.Configuration = updateTransport.Configuration; transport.Guid = updateTransport.Guid; if (!transport.Visible) { transport.Enabled = false; } ApiKey apiKey = _taskRepository.GetApiKey(transport.ApiKeyId.Value); if (!transport.Enabled) { apiKey.Enabled = false; _taskRepository.Update(apiKey.Id, apiKey); } else if (!apiKey.Enabled) { apiKey.Enabled = true; _taskRepository.Update(apiKey.Id, apiKey); } transport = _taskRepository.Update(transport.Id, transport); TransportUpdated transportUpdated = new TransportUpdated(); transportUpdated.Success = true; transportUpdated.Transport = transport; _eventBus.Publish(transportUpdated, replyTo, correlationId); }