private void UpdateListOfHeader(Clipping clipping)
        {
            ClippingsHeader header = FindClippingsHeader(clipping.Author, clipping.Title);

            if(header == null)
            {
                header = new ClippingsHeader(clipping.Author, clipping.Title);
                m_ListOfHeaders.Add(header);
            }

            header.ListOfClippings.Add(clipping);
        }
        private void ParseMyClippingsFile()
        {
            using (StreamReader sr = new StreamReader(m_PathToClippingsFile))
            {
                StringBuilder stringBuilder = new StringBuilder();

                string currentLine = sr.ReadLine();
                stringBuilder.AppendLine(currentLine);

                while (!sr.EndOfStream && !string.IsNullOrEmpty(currentLine))
                {
                    string title = string.Empty;
                    string author = string.Empty;
                    SeparateTitleFromAuthor(currentLine, out title, out author);

                    currentLine = sr.ReadLine();
                    stringBuilder.AppendLine(currentLine);
                    string ts = TryExtractTimeStampFromLineOfText(currentLine);

                    currentLine = sr.ReadLine(); //skip empty line
                    stringBuilder.AppendLine(currentLine);
                    if (!string.IsNullOrEmpty(currentLine))
                    {
                        throw (new Exception(string.Format("{0} Empty line after timestamp was not found. {1}{2} {3}",
                            UNEXPECTED_FILE_STRUCTURE, Environment.NewLine, CURRENT_LINE_TEXT, currentLine)));
                    }

                    currentLine = sr.ReadLine(); //read clipping text
                    stringBuilder.AppendLine(currentLine);

                    Clipping newClipping = new Clipping(title, author, ts, currentLine);
                    m_ListOfMyClippings.Add(newClipping);

                    UpdateListOfHeader(newClipping);

                    currentLine = sr.ReadLine(); //skip clippings separator
                    stringBuilder.AppendLine(currentLine);
                    if (!string.Equals(currentLine, CLIPPINGS_SEPARATOR))
                    {
                        throw (new Exception(string.Format("{0} Clippings separator was not found. {1}{2} {3}",
                            UNEXPECTED_FILE_STRUCTURE, Environment.NewLine, CURRENT_LINE_TEXT, currentLine)));
                    }

                    currentLine = sr.ReadLine(); //read next line
                    stringBuilder.AppendLine(currentLine);
                }

                m_OriginalMyClippingsFileText = stringBuilder.ToString();
            }

            PopulateListsOfAllAuthorsAndTitles();
        }