private void StartSearch() { bool found = false; AllowTimersTick = false; RefreshMapTimer.Start(); List <Location> locations = new List <Location>(); EPL_WS.GET_Suspensions_FullDetailed_Result item = new EPL_WS.GET_Suspensions_FullDetailed_Result(); foreach (Pushpin pushpin in m_PushpinLayer.Children) { string tag = pushpin.Tag.ToString(); int index = tag.IndexOf("_"); string ID_Suspension = tag.Substring(0, index); string ID_Ramal = tag.Substring(index + 1, tag.Length - index - 1); if (ID_Suspension.Equals(TB_Search.Text)) { pushpin.RenderTransform = new ScaleTransform { CenterX = pushpin.Width / 2, CenterY = pushpin.Height / 2, ScaleX = 1.5, ScaleY = 1.5 }; Canvas.SetZIndex(pushpin, 1000); locations.Add(pushpin.Location); if (!found) { item = PinsArray.Where(e => e.ID.ToString().Equals(ID_Suspension)).ElementAt(0); SelectedPushpin = pushpin; found = true; } } else { pushpin.RenderTransform = new ScaleTransform { CenterX = pushpin.Width / 2, CenterY = pushpin.Height / 2, ScaleX = 0.75, ScaleY = 0.75 }; Canvas.SetZIndex(pushpin, 0); } } if (found) { MiraMap.SetView(new LocationRect(locations)); ShowSuspensionDetail(SelectedPushpin, item); } }
private void soapClient_GET_Suspensions_FullDetailedCompleted(object sender, EPL_WS.GET_Suspensions_FullDetailedCompletedEventArgs e) { try { if (e.Result != null && e.Result.Length > 0) { Locations = new List <Location>(); m_PushpinLayer.Children.Clear(); m_ControlLayer.Children.Clear(); PinsArray.Clear(); string Latitude; string Longitude; for (int i = 0; i < e.Result.Length; i++) { if (!AllowSuspensionDetail || (AllowSuspensionDetail && e.Result.ElementAt(i).ID.ToString().Equals(ID_Suspension.ToString()))) { LinearGradientBrush PinBackgroundColor; switch (e.Result.ElementAt(i).Status) { case 0: PinBackgroundColor = PinBackgroundColorNormal; break; case 1: PinBackgroundColor = PinBackgroundColorApproved; break; case 2: PinBackgroundColor = PinBackgroundColorExecution; break; case 3: PinBackgroundColor = PinBackgroundColorConcluded; break; default: PinBackgroundColor = PinBackgroundColorNormal; break; } Latitude = e.Result.ElementAt(i).Coord_Lat == null ? "0.0" : e.Result.ElementAt(i).Coord_Lat.ToString(); Longitude = e.Result.ElementAt(i).Coord_Long == null ? "0.0" : e.Result.ElementAt(i).Coord_Long.ToString(); if (AllowSuspensionDetail || (!AllowSuspensionDetail && e.Result.ElementAt(i).Status > 0)) { PinsArray.Add(e.Result.ElementAt(i)); Pushpin pushpin = new Pushpin() { Background = PinBackgroundColor, Tag = string.Format("{0}_{1}", e.Result.ElementAt(i).ID, e.Result.ElementAt(i).ID_Ramal), Location = new Location { Latitude = double.Parse(Latitude), Longitude = double.Parse(Longitude) }, Cursor = Cursors.Hand }; if (CB_Year.SelectedIndex == 0) { pushpin.Visibility = Visibility.Visible; } else { pushpin.Visibility = e.Result.ElementAt(i).Status.Equals(CB_Year.SelectedIndex) ? Visibility.Visible : Visibility.Collapsed; } pushpin.MouseLeftButtonDown += new MouseButtonEventHandler(pushpin_MouseLeftButtonDown); pushpin.RenderTransform = new ScaleTransform { CenterX = pushpin.Width / 2, CenterY = pushpin.Height / 2, ScaleX = 0.75, ScaleY = 0.75 }; m_PushpinLayer.AddChild(pushpin, new Location(double.Parse(Latitude), double.Parse(Longitude)), PositionOrigin.BottomCenter); Locations.Add(pushpin.Location); } } } if (ShowAllPins) { MiraMap.SetView(new LocationRect(Locations)); if (MiraMap.ZoomLevel > 16) { MiraMap.ZoomLevel = 16; } DefaultZoomLevel = MiraMap.ZoomLevel; ShowAllPins = false; } RefreshMapTimer.Start(); } else { MiraMap.ZoomLevel = 13; } } catch { } }