Example #1
0
        public IList <CameraStatisticsModel> GetCameraStatistics(FilterCameraLastStatisticsModel filterModel)
        {
            var request = new RestRequest("/api/Monitor/CameraStatistics/Query", Method.POST);

            request.AddJsonBody(filterModel);

            var response = RestClient.Execute(request);

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

            return(JsonConvert.DeserializeObject <IList <CameraStatisticsModel> >(response.Content));
        }
Example #2
0
        public ActionResult FilterCameraStatistics(long regionID, long districtID, string cameraStatusTypes)
        {
            var filterModel = new FilterCameraLastStatisticsModel();

            filterModel.RegionID          = regionID == 0 ? default(long?) : regionID;
            filterModel.DistrictID        = districtID == 0 ? default(long?) : districtID;
            filterModel.CameraStatusTypes =
                cameraStatusTypes.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(f => (CameraStatusType)int.Parse(f.Replace("statusChkBox_", string.Empty)))
                .ToList();

            var monitorService         = new MonitorService(AuthenticatedUser.SessionToken);
            var cameraStatisticsModels = monitorService.GetCameraStatistics(filterModel);

            return(Json(cameraStatisticsModels, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        public IHttpActionResult GetCameraStatistics([FromBody] FilterCameraLastStatisticsModel filterModel)
        {
            using (var dbContext = new DataContext())
            {
                //dbContext.Database.Log = f => System.Diagnostics.Debug.WriteLine(f);

                var query = from p in dbContext.Cameras
                            join t in dbContext.CameraLastStatistics on p.ID equals t.CameraID into g
                            from tps in g.DefaultIfEmpty()
                            orderby tps.CameraID descending
                            join l in dbContext.InfringementLocations on p.InfringementLocationID equals l.ID into g1
                            from tps1 in g1.DefaultIfEmpty()
                            orderby tps1.ID descending
                            select new { p, tps, tps1 };

                if (filterModel != null)
                {
                    if (filterModel.CameraStatusTypes != null && filterModel.CameraStatusTypes.Count > 0)
                    {
                        query = query.Where(f => filterModel.CameraStatusTypes.Contains((CameraStatusType)f.p.CameraStatusType));
                    }
                }

                var entities = query.Select(f =>
                                            new
                {
                    CameraID                           = f.p.ID,
                    ConfigJson                         = f.p.ConfigJson,
                    Name                               = f.p.FriendlyName,
                    AdapterType                        = f.p.CameraAdapterType,
                    ConnectToHost                      = f.p.ConnectToHost,
                    GpsLatitude                        = f.p.GpsLatitude,
                    GpsLongitude                       = f.p.GpsLongitude,
                    DeviceConnectionType               = f.p.CameraConnectionType,
                    IsEnabled                          = f.p.IsEnabled,
                    CameraStatusType                   = f.p.CameraStatusType,
                    Operator                           = f.tps == null ? null : f.tps.Operator,
                    LastInfingementTime                = f.tps == null ? null : f.tps.LastInfingementTime,
                    LastInfingementSpeed               = f.tps == null ? 0 : f.tps.LastInfingementSpeed,
                    LastInfingementDistance            = f.tps == null ? 0 : f.tps.LastInfingementDistance,
                    SessionStatisticsVehicleCount      = f.tps == null ? 0 : f.tps.SessionStatisticsVehicleCount,
                    SessionStatisticsInfringementCount = f.tps == null ? 0 : f.tps.SessionStatisticsInfringementCount,
                    SessionStatisticsVoSICount         = f.tps == null ? 0 : f.tps.SessionStatisticsVoSICount,
                    DayStatisticsVehicleCount          = f.tps == null ? 0 : f.tps.DayStatisticsVehicleCount,
                    DayStatisticsInfringementCount     = f.tps == null ? 0 : f.tps.DayStatisticsInfringementCount,
                    DayStatisticsVoSICount             = f.tps == null ? 0 : f.tps.DayStatisticsVoSICount,
                    ModifiedTimeStamp                  = f.tps == null ? default(DateTime?) : f.tps.ModifiedTimeStamp,
                    InfringementLocation               = f.tps1 == null ? null : f.tps1,
                    LocationCode                       = f.tps == null ? "" : f.tps.LocationCode,
                    LocationDescription                = f.tps == null ? "" : f.tps.LocationDescription
                });


                var models = new List <CameraStatisticsModel>();


                foreach (var f in entities.ToList())
                {
                    var model =
                        new CameraStatisticsModel
                    {
                        DeviceID                           = f.CameraID,
                        Ip                                 = ExtractIpAddress(f.ConfigJson),
                        Name                               = f.Name,
                        AdapterType                        = (Core.Gateway.Models.Enums.CameraAdapterType)f.AdapterType,
                        ConnectToHost                      = f.ConnectToHost == "1",
                        GpsLatitude                        = f.GpsLatitude,
                        GpsLongitude                       = f.GpsLongitude,
                        DeviceConnectionType               = (Core.Gateway.Models.Enums.CameraConnectionType)f.DeviceConnectionType,
                        IsEnabled                          = f.IsEnabled == "1",
                        CameraStatusType                   = (Core.Gateway.Models.Enums.CameraStatusType)f.CameraStatusType,
                        Operator                           = f.Operator,
                        LastInfingementTime                = f.LastInfingementTime,
                        LastInfingementSpeed               = f.LastInfingementSpeed,
                        LastInfingementDistance            = f.LastInfingementDistance,
                        SessionStatisticsVehicleCount      = f.SessionStatisticsVehicleCount,
                        SessionStatisticsInfringementCount = f.SessionStatisticsInfringementCount,
                        SessionStatisticsVoSICount         = f.SessionStatisticsVoSICount,
                        DayStatisticsVehicleCount          = f.DayStatisticsVehicleCount,
                        DayStatisticsInfringementCount     = f.DayStatisticsInfringementCount,
                        DayStatisticsVoSICount             = f.DayStatisticsVoSICount,
                        ModifiedTimeStamp                  = f.ModifiedTimeStamp
                    };

                    if (model.Name == "Hermanus(Laser V2)")
                    {
                        Console.Write("Hier");
                    }

                    if (f.InfringementLocation != null)
                    {
                        model.LocationID          = f.InfringementLocation.ID;
                        model.LocationCode        = f.InfringementLocation.Code;
                        model.LocationDescription = f.InfringementLocation.Description;

                        var court = f.InfringementLocation.Court;
                        if (court != null)
                        {
                            var district = court.District;
                            if (district != null)
                            {
                                model.DistrictID   = district.ID;
                                model.DistrictName = district.BranchName;

                                var region = district.Region;
                                if (region != null)
                                {
                                    model.RegionID   = region.ID;
                                    model.RegionName = region.Name;
                                }
                            }
                        }
                    }
                    else
                    {
                        model.LocationID          = default(long?);
                        model.LocationCode        = string.Format("{0} (Unregistered)", f.LocationCode);
                        model.LocationDescription = f.LocationDescription;
                    }

                    models.Add(model);
                }

                if (filterModel != null)
                {
                    if (filterModel.RegionID.HasValue)
                    {
                        models = models.Where(f => f.RegionID == filterModel.RegionID).ToList();
                    }

                    if (filterModel.DistrictID.HasValue)
                    {
                        models = models.Where(f => f.DistrictID == filterModel.DistrictID).ToList();
                    }
                }

                return(Ok(models));
            }
        }