private Task OnDeleteVisualization(MessageContainer obj) { MessageDeleteVisualization message = MessageDeleteVisualization.Unpack(obj); if (message != null) { DeleteVisualization(message.VisId, false); } return(Task.CompletedTask); }
/// <summary> /// Deletes a single visualization with the provided <see cref="Guid"/>. /// </summary> /// <param name="visId">The <see cref="Guid"/> of the visualization.</param> /// <param name="syncWithRemote">Indicates whether the visualization should also be deleted on remote clients.</param> /// <returns>A bool indicating whether a visualization was successfully deleted. /// Returns <see langword="false"/> when there is no visualization with the provided <see cref="Guid"/>.</returns> public bool DeleteVisualization(Guid visId, bool syncWithRemote = true) { if (Visualizations.ContainsKey(visId)) { var settings = Visualizations[visId].Settings; Visualizations[visId].Dispose(); Visualizations.Remove(visId); if (syncWithRemote) { var message = new MessageDeleteVisualization(visId); Services.NetworkManager().SendMessage(message.Pack()); } // send notification event that a vis was deleted VisualizationDeletedEventBroadcast.Invoke(settings); return(true); } return(false); }