private async Task <IViewComponentResult> InstagramLoadAsync(VkUser vkUser, VkGroup vkGroup,
                                                                     Models.User user, Models.Order order,
                                                                     string photo, bool isPremium, string groupId, string isInst, string url)
        {
            try
            {
                var json = await _instagramService.GetInstagramJsonAsync(url);

                var    instagram = _jsonService.JsonConvertDeserializeObject <JsonModel.Instagram.Instagram>(json);
                var    profiles  = instagram?.EntryData?.ProfilePage;
                string jsonNext  = null;

                if (profiles != null)
                {
                    var token = profiles.FirstOrDefault()?.User?.Media?.PageInfo?.EndCursor;
                    if (!string.IsNullOrWhiteSpace(token))
                    {
                        var owner = profiles.FirstOrDefault()?.User?.Media?.Nodes?.FirstOrDefault()?.Owner?.Id;
                        if (!string.IsNullOrWhiteSpace(owner))
                        {
                            user.InstagramToken   = token;
                            user.InstagramOwnerId = owner;

                            _context.Update(user);
                            await _context.SaveChangesAsync();

                            var query_id = (await _context.VkClientSet.FirstOrDefaultAsync())
                                           .InstagramQueryId;

                            if (!string.IsNullOrWhiteSpace(query_id))
                            {
                                var count = 12;
                                jsonNext = await _instagramService.GetNextJsonAsync(query_id, owner, count, token);
                            }
                        }
                    }

                    var srcs = profiles.SelectMany(prof =>
                                                   prof?.User?.Media?.Nodes?.Select(node => new VkItemViewModel
                    {
                        Likes   = node?.EdgeMediaPreviewLike?.Count ?? node?.Likes.Count,
                        Coments = node?.EdgeMediaToComment?.Count ?? node.Comments?.Count,
                        Text    = string.Join("\n", node?.EdgeMediaToCaption?.Edges?.Select(o => o?.Node?.Text) ?? new List <string> {
                            node?.Caption
                        }),
                        Photo = new List <string> {
                            node?.DisplaySrc
                        },
                        Date = node?.Date ?? node?.TakenAtTimestamp
                    }))
                               .ToList();

                    if (!string.IsNullOrWhiteSpace(jsonNext))
                    {
                        var instagramNext = _jsonService.JsonConvertDeserializeObject <InstagramNext>(jsonNext);
                        if (instagramNext.Status == "ok")
                        {
                            var media = instagramNext?.Data?.User?.EdgeOwnerToTimelineMedia;

                            if (media != null)
                            {
                                var srcsNext = media.Edges?.Select(prof =>
                                                                   new VkItemViewModel
                                {
                                    Likes   = prof?.Node?.EdgeMediaPreviewLike?.Count,
                                    Coments = prof?.Node?.EdgeMediaToComment?.Count,
                                    Text    = string.Join("\n", prof?.Node?.EdgeMediaToCaption?.Edges?.Select(o => o?.Node?.Text) ?? new List <string> {
                                        string.Empty
                                    }),
                                    Photo = new List <string> {
                                        prof?.Node?.DisplayUrl
                                    },
                                    Date = prof?.Node?.TakenAtTimestamp
                                })
                                               .ToList();

                                srcs = srcs.Union(srcsNext).ToList();
                                if (media.PageInfo?.HasNextPage == true)
                                {
                                    user.InstagramToken = media.PageInfo?.EndCursor;

                                    _context.Update(user);
                                    await _context.SaveChangesAsync();
                                }
                            }
                        }
                        else
                        {
                            await _telegramService.SendMessage($"instagram query error: {instagramNext.Message}");
                        }
                    }

                    #region Загружаем выделенное, удаляем не использованное
                    var srcsDd = await _context.InstagramSet
                                 .Where(sel => sel.VkGroupId == vkGroup.VkGroupId && sel.Statuse == "Selected")
                                 .Select(node => new VkItemViewModel
                    {
                        ItemId  = node.InstagramId,
                        Statuse = node.Statuse,
                        Text    = node.Text,
                        Photo   = new List <string> {
                            node.Url
                        },
                        Date    = node.Date,
                        Coments = node.Coment,
                        Likes   = node.Likes
                    })
                                 .AsNoTracking()
                                 .ToListAsync();

                    var remove = _context.InstagramSet
                                 .Where(sel => sel.VkGroupId == vkGroup.VkGroupId && sel.Statuse != "Selected");

                    _context.RemoveRange(remove);
                    await _context.SaveChangesAsync();

                    #endregion

                    return(View(new VkResponseAndGroupVk
                    {
                        Responses = srcs.Union(srcsDd).OrderByDescending(ch => Tuple.Create(ch.Statuse == "Selected", ch.Likes)),
                        VkGroupViewModel = new VkGroupViewModel
                        {
                            VkGroupId = groupId,
                            Photo = photo,
                            Domain = vkGroup?.GroupInfo?.ScreenName ?? vkGroup?.Domain,
                            GroupName = vkGroup?.GroupInfo.Name
                        },
                        IsInst = "true"
                    }));
                }
            }
            catch (Exception ex)
            {
                await _telegramService.SendMessageExceptionAsync(ex);
            }

            return(View());
        }