internal void Send() { var jsonObject = new GcmOutgoingMessage { data = new GcmOutgoingMessage.Data() { message = NotificationText } }; if (!string.IsNullOrWhiteSpace(TopicText)) { jsonObject.to = "/topics/" + TopicText; var result = SendMessage(JsonConvert.SerializeObject(jsonObject)); Logger.Debug($"Zpráva do tématu '{TopicText}' odeslána s výsledkem: " + result); MessageBox.Show($"Zpráva '{NotificationText}' do tématu '{TopicText}' úspěšně odeslána", "Zpráva odeslána", MessageBoxButton.OK, MessageBoxImage.Information); } else { foreach (var user in GridSelectedUsers) { jsonObject.to = ((User)user).RegId; var result = SendMessage(JsonConvert.SerializeObject(jsonObject)); var resultObj = JsonConvert.DeserializeObject <GcmResponse>(result); if (resultObj != null && resultObj.success > 0) { Logger.Debug($"Zpráva '{NotificationText}' pro '{((User)user).Email}' úspěšně odeslána"); MessageBox.Show($"Zpráva '{NotificationText}' pro '{((User)user).Email}' úspěšně odeslána", "Zpráva odeslána", MessageBoxButton.OK, MessageBoxImage.Information); } else { Logger.Debug($"Zpráva '{NotificationText}' pro '{((User)user).Email}' odeslána s výsledkem " + result); var msgResult = MessageBox.Show($"Zprávu pro '{((User)user).Email}' se nepodařilo odeslat:" + System.Environment.NewLine + result + System.Environment.NewLine + "Smazat toto zařízení z evidence?", "Problém při odesílání", MessageBoxButton.YesNo, MessageBoxImage.Error); if (msgResult == MessageBoxResult.Yes) { dbConnector.DeleteUser(((User)user).RegId); } } } } Users = dbConnector.GetAllUsers(); //znovu načtení pro případ, že jsme promazávali uživatele (nemohu to udělat v rámci iterace - změnila by se mi kolekce) NotificationText = ""; TopicText = ""; }