public PatrolDetailsViewModel()
        {
            Patrol = new PatrolLastLocationDTO();

            LayersGraphicsDictionary = new Dictionary <string, ObservableCollection <Graphic> >();
            GetLayerObservable();
        }
        public List <PatrolLastLocationDTO> GetPatrolsLocations()
        {
            var result       = new List <PatrolLastLocationDTO>();
            var tfmService   = new TFMIntegration();
            var allLocations = tfmService.GetAllPatrolLocation();

            if (allLocations != null)
            {
                var allStatus = new PatrolStatusDAL().GetPatrolStatusList();
                for (int i = 0; i < allLocations.Count(); i++)
                {
                    var patrolCode  = allLocations[i].Name;
                    var patrolPlate = allLocations[i].Name;
                    var patrolArr   = allLocations[i].Name.Split('/');
                    if (patrolArr.Count() == 2)
                    {
                        patrolCode  = patrolArr[0];
                        patrolPlate = patrolArr[1];
                    }

                    var patrolLastLocation = new PatrolLastLocationDTO
                    {
                        Latitude         = allLocations[i].Latitude,
                        Longitude        = allLocations[i].Longitude,
                        PatrolCode       = patrolCode,
                        Speed            = allLocations[i].Speed,
                        PatrolPlateNo    = patrolPlate,
                        LocationDate     = allLocations[i].LocationDate.AddHours(4),
                        PatrolOriginalId = allLocations[i].PatrolId,
                        isPatrol         = true,
                        StatusId         = allLocations[i].StatusId,
                    };
                    if (allStatus != null && allStatus.Any(x => x.PatrolStatusId == patrolLastLocation.StatusId))
                    {
                        patrolLastLocation.StatusName = allStatus.FirstOrDefault(x => x.PatrolStatusId == patrolLastLocation.StatusId).PatrolStatus;
                    }
                    result.Add(patrolLastLocation);
                }
            }
            return(result);
        }
        private void AddNearPatrols(List <PatrolLastLocationDTO> Patrols)
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                PatrolsList.Clear();
                foreach (var patrol in Patrols)
                {
                    patrol.ImgCheckedSource = "../images/false.png";

                    PatrolsList.Add(patrol);
                }
                GetAllETA(Patrols);
                return;

                Application.Current.Dispatcher.Invoke(() =>
                {
                    PatrolsList.Clear();
                    var recommendedPatrol = _crsipServicesClient.RecommendCar(Latitude, Longitude);

                    if (recommendedPatrol != null)
                    {
                        recommendedPatrol.IsRecommended = true;

                        if (!Patrols.Any(p => p.PatrolId == recommendedPatrol.PatrolId))
                        {
                            var recommendedPatrolDto = new PatrolLastLocationDTO()
                            {
                                Latitude  = recommendedPatrol.Latitude,
                                Altitude  = recommendedPatrol.Altitude,
                                Longitude = recommendedPatrol.Longitude,
                                NumberOfAssignedIncident = recommendedPatrol.NumberOfAssignedIncident,
                                PatrolId            = recommendedPatrol.PatrolId,
                                PatrolPlateNo       = recommendedPatrol.PatrolPlateNo,
                                PatrolCode          = recommendedPatrol.PatrolCode,
                                IsNoticed           = recommendedPatrol.IsNoticed,
                                LocationDate        = recommendedPatrol.LocationDate,
                                PatrolLatLocationId = recommendedPatrol.PatrolLatLocationId,
                                Speed            = recommendedPatrol.Speed,
                                StatusName       = recommendedPatrol.StatusName,
                                PatrolOriginalId = recommendedPatrol.PatrolOriginalId,
                                StatusId         = recommendedPatrol.StatusId,
                                ImgCheckedSource = "../images/false.png",
                                IsRecommended    = recommendedPatrol.IsRecommended,
                                ETATime          = recommendedPatrol.ETATime,
                                CreationDate     = recommendedPatrol.CreationDate
                            };
                            Patrols.Add(recommendedPatrolDto);
                            //Patrols.Insert(0, recommendedPatrolDto);
                        }
                        else
                        {
                            Patrols.FirstOrDefault(x => x.PatrolId == recommendedPatrol.PatrolId).IsRecommended = true;
                            //var recPat = Patrols.FirstOrDefault(x => x.PatrolId == recommendedPatrol.PatrolId).IsRecommended = true;

                            //Patrols.Remove(Patrols.FirstOrDefault(x => x.PatrolId == recommendedPatrol.PatrolId));
                            //Patrols.Insert(0, recPat);
                        }
                    }

                    Patrols.OrderBy(p => p.IsRecommended);

                    foreach (var patrol in Patrols)
                    {
                        patrol.ImgCheckedSource = "../images/false.png";

                        PatrolsList.Add(patrol);
                    }
                    //var handler = PatrolsAdded;
                    //if (handler != null)
                    //    handler(this, new EventArgs());
                });
            });
        }