public MessageInfo(VehicleMessage message)
            : this(message.MessageType)
        {
            AddValue("Front Timestamp", "{0:d} {0:HH:mm:ss.fff}", message.TimestampFront);
            AddValue("Rear Timestamp", "{0:d} {0:HH:mm:ss.fff}", message.TimestampRear);
            AddValue("Object ID", "{0:#,##0}", message.ObjectId);
            AddValue("Road #", "{0:#,##0}", message.RoadNo);
            AddValue("Lane #", "{0:#,##0}", message.LaneNo);
            AddValue("Device #", "{0:#,##0}", message.DeviceNo);
            AddValue("Direction", "{0}", message.VehicleDirection);
            AddValue("Height", "{0:#,##0.000}m", message.HeightMeter);
            AddValue("Width", "{0:#,##0.000}m", message.WidthMeter);
            AddValue("Length", "{0:#,##0.000}m", message.LengthMeter);
            AddValue("Speed", "{0:#,##0.000}m/s", message.SpeedMeterPerSecond);
            AddValue("Device Center", "{0:#,##0.000}m", message.DeviceCenterMeter);
            AddValue("Lane Center", "{0:#,##0.000}m", message.LaneCenterMeter);
            AddValue("Road Center", "{0:#,##0.000}m", message.RoadCenterMeter);
            AddValue("Data", "{0:#,##0} ({1:#,##0} Bytes)",
                     message.Data != null ? message.Data.Count : 0,
                     message.Data != null ? message.Data.Sum(data => data.Data.Length) : 0);

            if (message.Data != null)
            {
                VehicleMessage.VehicleXmlData data = message.Data.FirstOrDefault(d => d is VehicleMessage.VehicleXmlData) as VehicleMessage.VehicleXmlData;
                if (data != null)
                {
                    AddDocument(data.Title, data.VehicleXml);
                }
            }
        }
Exemplo n.º 2
0
        public IActionResult PostVehicleMessage(string vehicleId, PostVehicleMessageModel postedModel)
        {
            if (postedModel == null)
            {
                return(StatusCode(204));
            }

            if (!Guid.TryParse(vehicleId, out var vehicleGuidId))
            {
                return(BadRequest("Invalid vehicleId"));
            }

            if (string.IsNullOrWhiteSpace(postedModel.subject))
            {
                return(BadRequest("Subject is required"));
            }

            if (string.IsNullOrWhiteSpace(postedModel.message))
            {
                return(BadRequest("Message is required"));
            }

            // make sure the vehicle exists
            var vehicleFound = m_Context.Vehicle.Any(c => c.Id == vehicleGuidId);

            if (!vehicleFound)
            {
                return(NotFound("vehicleId not found"));
            }

            // create the message
            var vehicleMessage = new VehicleMessage
            {
                Id        = Guid.NewGuid(),
                vehicleId = vehicleGuidId,
                subject   = postedModel.subject,
                message   = postedModel.message,
                displayAt = DateTimeOffset.Now,
                createdOn = DateTimeOffset.Now
            };

            // add and save
            m_Context.VehicleMessage.Add(vehicleMessage);
            m_Context.SaveChanges();

            // return result
            return(StatusCode(201));
        }