Ejemplo n.º 1
0
        public ResponseDetailsBase PingVehicle(PingVehicleCommand pingVehicle)
        {
            var vehicle = this._customerVehicleRepository.DbSet.FirstOrDefault(v => v.VehicleId.ToLowerInvariant() == pingVehicle.VehicleId.ToLowerInvariant());

            if (vehicle == null)
            {
                return(new ResponseDetailsBase(ResponseStatusCode.NotFound));
            }
            vehicle.LastPingTime = pingVehicle.CreatedAt;
            vehicle.UpdatedOn    = DateTime.Now;
            this._customerVehicleRepository.Update(vehicle);
            this._customerVehicleRepository.Save();
            return(new ResponseDetailsList <CustomerVehicleAggregate>(ResponseStatusCode.Success));
        }
Ejemplo n.º 2
0
        private void Ping(object state)
        {
            try
            {
                _logger.LogInformation("Push Message To Service Bus is starting");

                var getRandomVehicle = _vehicleService.GetRandomVehicle();
                if (getRandomVehicle.StatusCode != Helpers.Models.CommonEnums.ResponseStatusCode.Success)
                {
                    _logger.LogInformation("Cannot Retrieve Random Vehicle");
                    return;
                }
                var pingComm = new PingVehicleCommand()
                {
                    Id        = Guid.NewGuid(),
                    CreatedAt = DateTime.Now,
                    VehicleId = getRandomVehicle.DetailsObject.VehicleId
                };
                string            url     = "amqp://*****:*****@shark.rmq.cloudamqp.com/eicyyvpq";
                ConnectionFactory factory = new ConnectionFactory
                {
                    Uri = new Uri(url.Replace("amqp://", "amqps://"))
                };
                using (var connection = factory.CreateConnection())
                    using (var channel = connection.CreateModel())
                    {
                        channel.QueueDeclare(queue: "VehiclePing",
                                             durable: false,
                                             exclusive: false,
                                             autoDelete: false,
                                             arguments: null);

                        string message = Newtonsoft.Json.JsonConvert.SerializeObject(pingComm);
                        var    body    = Encoding.UTF8.GetBytes(message);

                        channel.BasicPublish(exchange: "",
                                             routingKey: "VehiclePing",
                                             basicProperties: null,
                                             body: body);
                        _logger.LogInformation("Push Message To Service Bus Comleted");
                    }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
        }