public async Task <List <AiGroup> > ParseGroups(WordDbContext wordDbContext, Variant variant, List <Word> words, AiSentence aiSentence)
        {
            List <AiGroup> result  = new List <AiGroup>();
            var            gropups = variant.Groups.ToList();
            int            i       = 0;

            foreach (var item in gropups)
            {
                AiGroup aiGroup = new AiGroup();
                aiGroup.AiDescription = await FindOrAddAiDescription(wordDbContext, item.Descr);

                aiGroup.Last   = (int)item.Last;
                aiGroup.Start  = (int)item.Start;
                aiGroup.IsSubj = item.IsSubj;
                aiGroup.IsGoup = item.IsGroup;
                item.AiGroup   = aiGroup;
                SetParent(gropups, item, i == 0 ? -1 : i);
                result.Add(aiGroup);
                aiGroup.AiSentence = aiSentence;
                wordDbContext.Add(aiGroup);
                CreateAiWordsGroup(words, aiGroup, wordDbContext);
                i++;
            }
            //SetParentIdGroups(result);
            return(result);
        }
        private void CreateAiWordsGroup(List <Word> words, AiGroup aiGroup, WordDbContext wordDbContext)
        {
            var cols = words.Skip(aiGroup.Start).Take(aiGroup.Last + 1);

            foreach (var word in cols)
            {
                var aiGroupWord = new AiGroupWord();
                aiGroupWord.AiWord  = word.AiWord;
                aiGroupWord.AiGroup = aiGroup;
                wordDbContext.Add(aiGroupWord);
            }
        }