public IEnumerable <Categorie> FavoriteRepostCategories([FromBody] RepostCategoriesRequest request)
        {
            var logger = new MyLogger();

            logger.Log($"repost start ({request.UserName})");

            var vkProvider = new VKProvider(appId, login, password, logger);

            var result = Main.GetUserFavoriteCategories(vkProvider, _context, request);

            logger.Log($"repost finish ({request.UserName})");
            return(result);
        }
示例#2
0
        public static IEnumerable <Categorie> GetUserFavoriteCategories(
            VKProvider vkProvider,
            SocialContext context,
            RepostCategoriesRequest repostCategoriesRequest)
        {
            var result = new List <Categorie>();

            var person = vkProvider.GetPerson(repostCategoriesRequest.UserName, repostCategoriesRequest.AnalysisPeriod);

            if (person == null)
            {
                return(null);
            }

            //var keyGroups = context.vk_keygroups.ToList();
            //FilterRepostGroups(person.GroupReposts, keyGroups);

            foreach (var gc in person.GroupReposts.Where(q => q.GroupId > 0))
            {
                var Activity = "";

                Activity = vkProvider.GetGroupInfo(gc.GroupId.ToString()).Activity;

                result.Add(new Categorie {
                    Name        = Activity,
                    ActionCount = gc.CounterValue
                });
            }

            //var nn = vkProvider.GetLikers(person.Posts);
            //StoreLikes(context, nn);

            var groupedResult =
                result
                .GroupBy(p => p.Name)
                .Select(group => new Categorie
            {
                Name        = group.Key,
                ActionCount = group.Sum(n => n.ActionCount)
            }).ToList();

            return(groupedResult);
        }