Exemple #1
0
        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());
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }