/// <summary> /// Removes the hole. /// </summary> /// <param name="windowId">The window identifier.</param> /// <param name="windowX">The window x.</param> /// <param name="windowY">The window y.</param> /// <param name="holeId">The hole identifier.</param> public void RemoveHole(long windowId, int windowX, int windowY, long holeId) { var args = new GameHoleClickedEventArgs(windowId, windowX, windowY, holeId); Tracer.Debug(string.Format("MapEditViewModel :: Hole removed callback retrieved ({0})", args)); ThreadContext.InvokeOnUiThread(() => this.HoleRemoved(this, args)); }
/// <summary> /// Hole has been added. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameHoleClickedEventArgs"/> instance containing the event data.</param> private void HoleAdded(object sender, GameHoleClickedEventArgs args) { var gameWindow = this.GameWindows[args.WindowY][args.WindowX]; gameWindow.Holes.Add(new Hole { Id = args.HoleId, X = args.HoleX, Y = args.HoleY, Diameter = this.HoleDiameter }); // adapt map model this.map.NumberOfHoles++; var window = this.map.Windows.FirstOrDefault(w => w.X == args.WindowX && w.Y == args.WindowY); if (window != null) { var hole = new Contract.Data.Map.Hole { Id = args.HoleId, X = args.HoleX, Y = args.HoleY }; window.Holes = window.Holes.ToList(); // this is necessary to convert the collection to a list... window.Holes.Add(hole); } }
/// <summary> /// Hole has been removed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameHoleClickedEventArgs"/> instance containing the event data.</param> private void HoleRemoved(object sender, GameHoleClickedEventArgs args) { var gameWindow = this.GameWindows[args.WindowY][args.WindowX]; var gameHole = gameWindow.Holes.FirstOrDefault(h => h.Id == args.HoleId); if (gameHole != null) { gameWindow.Holes.Remove(gameHole); } // adapt map model this.map.NumberOfHoles--; var window = this.map.Windows.FirstOrDefault(w => w.X == args.WindowX && w.Y == args.WindowY); if (window != null) { var hole = window.Holes.FirstOrDefault(h => h.Id == args.HoleId); if (hole != null) { window.Holes = window.Holes.ToList(); // this is necessary to convert the collection to a list... window.Holes.Remove(hole); } } }