private bool Save(out string message) { var phraseItem = new PhraseItem { Phrase = Phrase, Complexity = Complexity, Description = Description }; StringUtils.FormatPhrase(phraseItem); if (String.IsNullOrWhiteSpace(phraseItem.Phrase)) //TOFO: fix it, textblock should be highlighted. { message = "Phrase can't be empty!"; return(false); } if (!_isEditing && _selectedPack.Phrases.Select(p => p.Phrase).Contains(phraseItem.Phrase)) { message = "Phrase is already in the pack"; return(false); } message = _oldPhrase == null ? _service.AddPhraseAsync(_selectedPack.Id, phraseItem, _author).Result : _service.EditPhraseAsync(_selectedPack.Id, _oldPhrase, phraseItem, _author).Result; if (message.Trim() == "{\"result\": true}") { if (!_isEditing) { _phrases.Value.Add(phraseItem); } else { var index = _phrases.Value.IndexOf(_oldPhrase); _phrases.Value[index] = phraseItem; } return(true); } return(false); }