Beispiel #1
0
        public async Task <CameraLastStatisticModel> AddCameraStatistics(CameraLastStatisticModel model)
        {
            var request = new RestRequest("/api/Monitor/CameraStatistics", Method.POST);

            request.AddJsonBody(model);

            var response = await RestClient.ExecuteTaskAsync(request);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw CreateException(response);
            }

            return(JsonConvert.DeserializeObject <CameraLastStatisticModel>(response.Content));
        }
Beispiel #2
0
        private async Task SendCameraInfo(long deviceID, iCamInfo camInfo)
        {
            var model = new CameraLastStatisticModel();

            model.DeviceID     = deviceID;
            model.SerialNumber = camInfo.SerialNumber;
            model.Operator     = camInfo.Operator;
            model.SmdType      = camInfo.SmdType;
            model.SystemStatus = camInfo.SystemStatus;

            if (camInfo.Location != null)
            {
                model.LocationCode           = camInfo.Location.Code;
                model.LocationDescription    = camInfo.Location.Description;
                model.LocationType           = camInfo.Location.Type;
                model.LocationGPS            = camInfo.Location.GPS;
                model.LocationZoneLight      = int.Parse(camInfo.Location.ZoneLight);
                model.LocationZonePT         = int.Parse(camInfo.Location.ZonePT);
                model.LocationZoneHeavy      = int.Parse(camInfo.Location.ZoneHeavy);
                model.LocationThresholdLight = int.Parse(camInfo.Location.ThresholdLight);
                model.LocationThresholdPT    = int.Parse(camInfo.Location.ThresholdPT);
                model.LocationThresholdHeavy = int.Parse(camInfo.Location.ThresholdHeavy);
            }

            if (camInfo.LastInfingement != null)
            {
                model.LastInfingementTime     = camInfo.LastInfingement.Time; //" : "14:08:55.38";
                model.LastInfingementSpeed    = int.Parse(camInfo.LastInfingement.Speed);
                model.LastInfingementDistance = int.Parse(camInfo.LastInfingement.Distance);
                model.LastInfingementPlate    = camInfo.LastInfingement.Plate;
                model.LastInfingementType     = camInfo.LastInfingement.Type;
            }

            if (camInfo.LastVoSI != null)
            {
                model.LastVoSITime   = camInfo.LastVoSI.Time; //14:11:33.81";
                model.LastVoSIPlate  = camInfo.LastVoSI.Plate;
                model.LastVoSIReason = camInfo.LastVoSI.Reason;
            }

            if (camInfo.SessionStatistics != null)
            {
                model.SessionStatisticsUptime                      = camInfo.SessionStatistics.Uptime; //" : "4:02:58";
                model.SessionStatisticsVehicleCount                = camInfo.SessionStatistics.VehicleCount;
                model.SessionStatisticsInfringementCount           = camInfo.SessionStatistics.InfringementCount;
                model.SessionStatisticsInfringementRate            = (decimal)camInfo.SessionStatistics.InfringementRate;//2.2;
                model.SessionStatisticsVehicleHourlyRate           = camInfo.SessionStatistics.VehicleHourlyRate;
                model.SessionStatisticsSpeedInfringementCount      = camInfo.SessionStatistics.SpeedInfringementCount;
                model.SessionStatisticsRedlightInfringementCount   = camInfo.SessionStatistics.RedlightInfringementCount;
                model.SessionStatisticsHeadwayInfringementCount    = camInfo.SessionStatistics.HeadwayInfringementCount;
                model.SessionStatisticsStoplineInfringementCount   = camInfo.SessionStatistics.StoplineInfringementCount;
                model.SessionStatisticsYellowlineInfringementCount = camInfo.SessionStatistics.YellowlineInfringementCount;
                model.SessionStatisticsLineViolationCount          = camInfo.SessionStatistics.LineViolationCount;
                model.SessionStatisticsEightyFivePercentileSpeed   = camInfo.SessionStatistics.EightyFivePercentileSpeed;
                model.SessionStatisticsAverageSpeed                = camInfo.SessionStatistics.AverageSpeed;
                model.SessionStatisticsStandardDeviation           = camInfo.SessionStatistics.StandardDeviation;
                model.SessionStatisticsMaximumSpeed                = camInfo.SessionStatistics.MaximumSpeed;
                model.SessionStatisticsVoSICount                   = camInfo.SessionStatistics.VoSICount;
            }

            if (camInfo.DayStatistics != null)
            {
                model.DayStatisticsUptime                      = camInfo.DayStatistics.Uptime;
                model.DayStatisticsVehicleCount                = camInfo.DayStatistics.VehicleCount;
                model.DayStatisticsInfringementCount           = camInfo.DayStatistics.InfringementCount;
                model.DayStatisticsInfringementRate            = (decimal)camInfo.DayStatistics.InfringementRate;
                model.DayStatisticsVehicleHourlyRate           = camInfo.DayStatistics.VehicleHourlyRate;
                model.DayStatisticsSpeedInfringementCount      = camInfo.DayStatistics.SpeedInfringementCount;
                model.DayStatisticsRedlightInfringementCount   = camInfo.DayStatistics.RedlightInfringementCount;
                model.DayStatisticsHeadwayInfringementCount    = camInfo.DayStatistics.HeadwayInfringementCount;
                model.DayStatisticsStoplineInfringementCount   = camInfo.DayStatistics.StoplineInfringementCount;
                model.DayStatisticsYellowlineInfringementCount = camInfo.DayStatistics.YellowlineInfringementCount;
                model.DayStatisticsLineViolationCount          = camInfo.DayStatistics.LineViolationCount;
                model.DayStatisticsEightyFivePercentileSpeed   = camInfo.DayStatistics.EightyFivePercentileSpeed;
                model.DayStatisticsAverageSpeed                = camInfo.DayStatistics.AverageSpeed;
                model.DayStatisticsStandardDeviation           = camInfo.DayStatistics.StandardDeviation;
                model.DayStatisticsMaximumSpeed                = camInfo.DayStatistics.MaximumSpeed;
                model.DayStatisticsVoSICount                   = camInfo.DayStatistics.VoSICount;
            }

            var monitorService = new MonitorService(Authorize.SessionToken);
            await monitorService.AddCameraStatistics(model);
        }
Beispiel #3
0
        public IHttpActionResult PostCameraStatistics([FromBody] CameraLastStatisticModel model)
        {
            using (var dbContext = new DataContext())
            {
                var camera = dbContext.Cameras.Find(model.DeviceID);
                if (camera == null)
                {
                    return(this.BadRequestEx(Error.DeviceNotFound));
                }

                var infringementLocation = dbContext.InfringementLocations.SingleOrDefault(f => f.Code == model.LocationCode);
                if (infringementLocation != null)
                {
                    camera.InfringementLocationID = infringementLocation.ID;
                }
                else
                {
                    camera.InfringementLocationID = null;
                }

                if (model.LocationGPS == "1024,1024")
                {
                    if (infringementLocation != null && infringementLocation.GpsLatitude.HasValue)
                    {
                        camera.GpsLatitude  = infringementLocation.GpsLatitude;
                        camera.GpsLongitude = infringementLocation.GpsLongitude;
                    }
                }
                else
                {
                    var splitParts = model.LocationGPS.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    if (splitParts != null && splitParts.Length == 2)
                    {
                        camera.GpsLatitude  = decimal.Parse(splitParts[0], CultureInfo.InvariantCulture);
                        camera.GpsLongitude = decimal.Parse(splitParts[1], CultureInfo.InvariantCulture);
                    }
                }

                camera.ModifiedTimeStamp = DateTime.Now;
                dbContext.SaveChanges();

                var cameraLastStatistics = dbContext.CameraLastStatistics.SingleOrDefault(f => f.CameraID == camera.ID);
                if (cameraLastStatistics == null)
                {
                    cameraLastStatistics =
                        new CameraLastStatistics
                    {
                        CameraID                                     = camera.ID,
                        SerialNumber                                 = model.SerialNumber,
                        Operator                                     = model.Operator,
                        SmdType                                      = model.SmdType,
                        SystemStatus                                 = model.SystemStatus,
                        LocationCode                                 = model.LocationCode,
                        LocationDescription                          = model.LocationDescription,
                        LocationType                                 = model.LocationType,
                        LocationGPS                                  = model.LocationGPS, //" : "1024,1024",
                        LocationZoneLight                            = model.LocationZoneLight,
                        LocationZonePT                               = model.LocationZonePT,
                        LocationZoneHeavy                            = model.LocationZoneHeavy,
                        LocationThresholdLight                       = model.LocationThresholdLight,
                        LocationThresholdPT                          = model.LocationThresholdPT,
                        LocationThresholdHeavy                       = model.LocationThresholdHeavy,
                        LastInfingementTime                          = model.LastInfingementTime, //" : "14:08:55.38",
                        LastInfingementSpeed                         = model.LastInfingementSpeed,
                        LastInfingementDistance                      = model.LastInfingementDistance,
                        LastInfingementPlate                         = model.LastInfingementPlate,
                        LastInfingementType                          = model.LastInfingementType,
                        LastVoSITime                                 = model.LastVoSITime, //14:11:33.81",
                        LastVoSIPlate                                = model.LastVoSIPlate,
                        LastVoSIReason                               = model.LastVoSIReason,
                        SessionStatisticsUptime                      = model.SessionStatisticsUptime, //" : "4:02:58",
                        SessionStatisticsVehicleCount                = model.SessionStatisticsVehicleCount,
                        SessionStatisticsInfringementCount           = model.SessionStatisticsInfringementCount,
                        SessionStatisticsInfringementRate            = model.SessionStatisticsInfringementRate,//2.2,
                        SessionStatisticsVehicleHourlyRate           = model.SessionStatisticsVehicleHourlyRate,
                        SessionStatisticsSpeedInfringementCount      = model.SessionStatisticsSpeedInfringementCount,
                        SessionStatisticsRedlightInfringementCount   = model.SessionStatisticsRedlightInfringementCount,
                        SessionStatisticsHeadwayInfringementCount    = model.SessionStatisticsHeadwayInfringementCount,
                        SessionStatisticsStoplineInfringementCount   = model.SessionStatisticsStoplineInfringementCount,
                        SessionStatisticsYellowlineInfringementCount = model.SessionStatisticsYellowlineInfringementCount,
                        SessionStatisticsLineViolationCount          = model.SessionStatisticsLineViolationCount,
                        SessionStatisticsEightyFivePercentileSpeed   = model.SessionStatisticsEightyFivePercentileSpeed,
                        SessionStatisticsAverageSpeed                = model.SessionStatisticsAverageSpeed,
                        SessionStatisticsStandardDeviation           = model.SessionStatisticsStandardDeviation,
                        SessionStatisticsMaximumSpeed                = model.SessionStatisticsMaximumSpeed,
                        SessionStatisticsVoSICount                   = model.SessionStatisticsVoSICount,
                        DayStatisticsUptime                          = model.DayStatisticsUptime, //7:21:19",
                        DayStatisticsVehicleCount                    = model.DayStatisticsVehicleCount,
                        DayStatisticsInfringementCount               = model.DayStatisticsInfringementCount,
                        DayStatisticsInfringementRate                = model.DayStatisticsInfringementRate, // 3.2,
                        DayStatisticsVehicleHourlyRate               = model.DayStatisticsVehicleHourlyRate,
                        DayStatisticsSpeedInfringementCount          = model.DayStatisticsSpeedInfringementCount,
                        DayStatisticsRedlightInfringementCount       = model.DayStatisticsRedlightInfringementCount,
                        DayStatisticsHeadwayInfringementCount        = model.DayStatisticsHeadwayInfringementCount,
                        DayStatisticsStoplineInfringementCount       = model.DayStatisticsStoplineInfringementCount,
                        DayStatisticsYellowlineInfringementCount     = model.DayStatisticsYellowlineInfringementCount,
                        DayStatisticsLineViolationCount              = model.DayStatisticsLineViolationCount,
                        DayStatisticsEightyFivePercentileSpeed       = model.DayStatisticsEightyFivePercentileSpeed,
                        DayStatisticsAverageSpeed                    = model.DayStatisticsAverageSpeed,
                        DayStatisticsStandardDeviation               = model.DayStatisticsStandardDeviation,
                        DayStatisticsMaximumSpeed                    = model.DayStatisticsMaximumSpeed,
                        DayStatisticsVoSICount                       = model.DayStatisticsVoSICount,
                        ModifiedTimeStamp                            = DateTime.Now
                    };

                    dbContext.CameraLastStatistics.Add(cameraLastStatistics);
                }
                else
                {
                    cameraLastStatistics.SerialNumber                                 = model.SerialNumber;
                    cameraLastStatistics.Operator                                     = model.Operator;
                    cameraLastStatistics.SmdType                                      = model.SmdType;
                    cameraLastStatistics.SystemStatus                                 = model.SystemStatus;
                    cameraLastStatistics.LocationCode                                 = model.LocationCode;
                    cameraLastStatistics.LocationDescription                          = model.LocationDescription;
                    cameraLastStatistics.LocationType                                 = model.LocationType;
                    cameraLastStatistics.LocationGPS                                  = model.LocationGPS; //" : "1024;1024";
                    cameraLastStatistics.LocationZoneLight                            = model.LocationZoneLight;
                    cameraLastStatistics.LocationZonePT                               = model.LocationZonePT;
                    cameraLastStatistics.LocationZoneHeavy                            = model.LocationZoneHeavy;
                    cameraLastStatistics.LocationThresholdLight                       = model.LocationThresholdLight;
                    cameraLastStatistics.LocationThresholdPT                          = model.LocationThresholdPT;
                    cameraLastStatistics.LocationThresholdHeavy                       = model.LocationThresholdHeavy;
                    cameraLastStatistics.LastInfingementTime                          = model.LastInfingementTime; //" : "14:08:55.38";
                    cameraLastStatistics.LastInfingementSpeed                         = model.LastInfingementSpeed;
                    cameraLastStatistics.LastInfingementDistance                      = model.LastInfingementDistance;
                    cameraLastStatistics.LastInfingementPlate                         = model.LastInfingementPlate;
                    cameraLastStatistics.LastInfingementType                          = model.LastInfingementType;
                    cameraLastStatistics.LastVoSITime                                 = model.LastVoSITime; //14:11:33.81";
                    cameraLastStatistics.LastVoSIPlate                                = model.LastVoSIPlate;
                    cameraLastStatistics.LastVoSIReason                               = model.LastVoSIReason;
                    cameraLastStatistics.SessionStatisticsUptime                      = model.SessionStatisticsUptime; //" : "4:02:58";
                    cameraLastStatistics.SessionStatisticsVehicleCount                = model.SessionStatisticsVehicleCount;
                    cameraLastStatistics.SessionStatisticsInfringementCount           = model.SessionStatisticsInfringementCount;
                    cameraLastStatistics.SessionStatisticsInfringementRate            = model.SessionStatisticsInfringementRate;//2.2;
                    cameraLastStatistics.SessionStatisticsVehicleHourlyRate           = model.SessionStatisticsVehicleHourlyRate;
                    cameraLastStatistics.SessionStatisticsSpeedInfringementCount      = model.SessionStatisticsSpeedInfringementCount;
                    cameraLastStatistics.SessionStatisticsRedlightInfringementCount   = model.SessionStatisticsRedlightInfringementCount;
                    cameraLastStatistics.SessionStatisticsHeadwayInfringementCount    = model.SessionStatisticsHeadwayInfringementCount;
                    cameraLastStatistics.SessionStatisticsStoplineInfringementCount   = model.SessionStatisticsStoplineInfringementCount;
                    cameraLastStatistics.SessionStatisticsYellowlineInfringementCount = model.SessionStatisticsYellowlineInfringementCount;
                    cameraLastStatistics.SessionStatisticsLineViolationCount          = model.SessionStatisticsLineViolationCount;
                    cameraLastStatistics.SessionStatisticsEightyFivePercentileSpeed   = model.SessionStatisticsEightyFivePercentileSpeed;
                    cameraLastStatistics.SessionStatisticsAverageSpeed                = model.SessionStatisticsAverageSpeed;
                    cameraLastStatistics.SessionStatisticsStandardDeviation           = model.SessionStatisticsStandardDeviation;
                    cameraLastStatistics.SessionStatisticsMaximumSpeed                = model.SessionStatisticsMaximumSpeed;
                    cameraLastStatistics.SessionStatisticsVoSICount                   = model.SessionStatisticsVoSICount;
                    cameraLastStatistics.DayStatisticsUptime                          = model.DayStatisticsUptime; //7:21:19";
                    cameraLastStatistics.DayStatisticsVehicleCount                    = model.DayStatisticsVehicleCount;
                    cameraLastStatistics.DayStatisticsInfringementCount               = model.DayStatisticsInfringementCount;
                    cameraLastStatistics.DayStatisticsInfringementRate                = model.DayStatisticsInfringementRate; // 3.2;
                    cameraLastStatistics.DayStatisticsVehicleHourlyRate               = model.DayStatisticsVehicleHourlyRate;
                    cameraLastStatistics.DayStatisticsSpeedInfringementCount          = model.DayStatisticsSpeedInfringementCount;
                    cameraLastStatistics.DayStatisticsRedlightInfringementCount       = model.DayStatisticsRedlightInfringementCount;
                    cameraLastStatistics.DayStatisticsHeadwayInfringementCount        = model.DayStatisticsHeadwayInfringementCount;
                    cameraLastStatistics.DayStatisticsStoplineInfringementCount       = model.DayStatisticsStoplineInfringementCount;
                    cameraLastStatistics.DayStatisticsYellowlineInfringementCount     = model.DayStatisticsYellowlineInfringementCount;
                    cameraLastStatistics.DayStatisticsLineViolationCount              = model.DayStatisticsLineViolationCount;
                    cameraLastStatistics.DayStatisticsEightyFivePercentileSpeed       = model.DayStatisticsEightyFivePercentileSpeed;
                    cameraLastStatistics.DayStatisticsAverageSpeed                    = model.DayStatisticsAverageSpeed;
                    cameraLastStatistics.DayStatisticsStandardDeviation               = model.DayStatisticsStandardDeviation;
                    cameraLastStatistics.DayStatisticsMaximumSpeed                    = model.DayStatisticsMaximumSpeed;
                    cameraLastStatistics.DayStatisticsVoSICount                       = model.DayStatisticsVoSICount;
                    cameraLastStatistics.ModifiedTimeStamp                            = DateTime.Now;
                }

                dbContext.SaveChanges();

                return(Ok(model));
            }
        }