public void MarkovProbability(string songLine)
        {
            var words = songLine.Split(new char[] { ' ' });
            for (int i = 0; i < words.Length - 1; i++)
            {
                Words tempWordsDb = new Words();
                SonGeneratorDAL.DbTables.Markov tempMarkovDb = new SonGeneratorDAL.DbTables.Markov();
                var tempWordMarkov = words[i + 1];
                var tempWord = words[i];
                if (_entities.Markovs.FirstOrDefault(x => x.Name == tempWordMarkov && x.Words.WordName == tempWord) != null)
                {
                    tempMarkovDb = _entities.Markovs.FirstOrDefault(x => x.Name == tempWordMarkov && x.Words.WordName == tempWord);
                    tempMarkovDb.Occurrency = tempMarkovDb.Occurrency + 1;

                    _entities.Entry(tempMarkovDb).State = System.Data.Entity.EntityState.Modified;
                    _entities.SaveChanges();
                }
                else
                {
                    tempWordsDb = _entities.Words.FirstOrDefault(x => x.WordName == tempWord);

                    tempMarkovDb = new SonGeneratorDAL.DbTables.Markov
                    {
                        Name = tempWordMarkov,
                        Words = tempWordsDb,
                        Occurrency = 1,
                    };

                    _entities.Markovs.Add(tempMarkovDb);
                    _entities.SaveChanges();
                }

            }
        }
        public void AddWords(string filePath)
        {
            SonGeneratorContext _entities = new SonGeneratorContext();

            PartAndClassificate partAndClassificate = new PartAndClassificate();
            SyllablesCounter sylabizer = new SyllablesCounter();
            LoadText loadText = new LoadText();
            MarkovPreparation markovPreparation = new MarkovPreparation();
            Words tempDbWords = new Words();
            PartOfSpeech tempPartOfSpeech = new PartOfSpeech();
            PartOfSentence tempPartOfSentence = new PartOfSentence();
            List<string> songText = new List<string>();
            SonGeneratorUI progressbar = new SonGeneratorUI();

            progressbar.progressBar1.Maximum = 50;
            progressbar.progressBar1.Value = 0;
            progressbar.Refresh();

            songText = loadText.LoadSentence(filePath).ToList();
            string word, speechTag, sentenceTag;
            int sylablessCounter = 0;

            progressbar.progressBar1.Value = 2;
            progressbar.Refresh();

            foreach (var songLine in songText)
            {
                var wordsCounter = 0;
                var recognizeSpeechAndSentence = partAndClassificate.PartingSpeechAndSentence(songLine);

                foreach (var sentence in recognizeSpeechAndSentence)
                {
                    word = sentence.Name;
                    sentenceTag = sentence.SentenceTag;
                    speechTag = recognizeSpeechAndSentence[wordsCounter].SpeechTag;
                    sylablessCounter = sylabizer.SyllableCount(word);

                    if (_entities.PartOfSentences.FirstOrDefault(x => x.PartOfSentenceField == sentenceTag) == null)
                    {
                        tempPartOfSentence = new PartOfSentence
                        {
                            PartOfSentenceField = sentenceTag
                        };
                    }
                    else
                    {
                        tempPartOfSentence =
                            _entities.PartOfSentences.FirstOrDefault(x => x.PartOfSentenceField == sentenceTag);
                    }

                    if (_entities.PartOfSpeeches.FirstOrDefault(x => x.PartOfSpeechField == speechTag) == null)
                    {
                        tempPartOfSpeech = new PartOfSpeech
                        {
                            PartOfSpeechField = speechTag
                        };
                    }
                    else
                    {
                        tempPartOfSpeech = _entities.PartOfSpeeches.FirstOrDefault(x => x.PartOfSpeechField == speechTag);
                    }

                    if (_entities.Words.FirstOrDefault(
                            x => x.WordName == word && x.NbOfLetter == word.Length) == null)
                    {
                        tempDbWords = new Words
                        {
                            NbOfLetter = word.Length,
                            WordName = word,
                            PartOfSentence = tempPartOfSentence,
                            PartOfSpeech = tempPartOfSpeech,
                            NbOfSylabs = sylablessCounter
                        };
                        _entities.Words.Add(tempDbWords);
                        _entities.SaveChanges();
                    }
                    wordsCounter++;
                }
                progressbar.progressBar1.Value = 30;
                progressbar.Refresh();
                markovPreparation.MarkovProbability(songLine);
                progressbar.progressBar1.Value = 50;
                progressbar.Refresh();
            }
            _entities.Dispose();
        }