示例#1
0
        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);
        }