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); }
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); }