ACAT.Extensions.Default.FunctionalAgents.LectureManager.LectureManagerMainForm.getNextSentenceToSpeak C# (CSharp) Method

getNextSentenceToSpeak() private method

Gets the sentence object of the next sentence that has to be spoken
private getNextSentenceToSpeak ( ) : Sentence
return Sentence
        private Sentence getNextSentenceToSpeak()
        {
            int selectionStart = textBox1.SelectionStart;
            if (_lastSentenceSpoken == null || textBox1.SelectionLength == 0)
            {
                foreach (Paragraph para in _paragraphs)
                {
                    if (selectionStart == para.Start && para.Sentences.Count() > 0)
                    {
                        return para.Sentences[0];
                    }
                }
            }

            if (textBox1.SelectionLength == 0)
            {
                foreach (Sentence sentence in _sentences)
                {
                    if (textBox1.SelectionStart == sentence.Start)
                    {
                        return sentence;
                    }
                }
            }
            else if (_lastSentenceSpoken == null)
            {
                foreach (Sentence sentence in _sentences)
                {
                    if (textBox1.SelectionStart >= sentence.Start && textBox1.SelectionStart < sentence.End)
                    {
                        return sentence;
                    }
                }
            }
            else
            {
                selectionStart = _lastSentenceSpoken.Start + _lastSentenceSpoken.Length;
            }

            return _sentences.FirstOrDefault(sentence => sentence.Start >= selectionStart);
        }