public CategorialValue GetEducationLevelInformationActiveUsers(int vkGroupId, AudienceFilteringResult result) { var educationInfo = new CategorialValue(); foreach (var member in result.Members) { switch (member.Education) { case EducationLevel.Unknown: educationInfo.CategoryA++; break; case EducationLevel.Middle: educationInfo.CategoryB++; break; case EducationLevel.UncompletedHigher: educationInfo.CategoryC++; break; case EducationLevel.Higher: educationInfo.CategoryD++; break; case EducationLevel.PhD: educationInfo.CategoryE++; break; } } return(educationInfo); }
public CategorialValue LikesRepostCommentDiagramData(int vkGroupId, AudienceFilteringResult filteringResult) { var result = new CategorialValue(); string userIds = filteringResult.IsAllMembers ? string.Empty : QueryArrayBuilder.GetString(filteringResult.Members.Select(m => m.VkMemberId).ToArray()); using (IDataGateway dataGateway = this.dataGatewayProvider.GetDataGateway()) { string creatorIdClause = filteringResult.IsAllMembers ? string.Empty : string.Format("AND creatorid = ANY({0})", userIds); string memberIdClause = filteringResult.IsAllMembers ? string.Empty : string.Format("AND vkmemberid = ANY({0})", userIds); string query = string.Format("SELECT COUNT(*)::integer FROM postcomment WHERE vkgroupid = {0} {1}", vkGroupId, creatorIdClause); result.CategoryA = dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COUNT(*)::integer FROM membershare WHERE vkgroupid = {0} {1} AND itemtype = {2}", vkGroupId, memberIdClause, (int)LikeShareType.Post); result.CategoryB = dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COUNT(*)::integer FROM memberlike WHERE vkgroupid = {0} {1} AND itemtype = {2}", vkGroupId, memberIdClause, (int)LikeShareType.Post); result.CategoryC = dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COUNT(*)::integer FROM post WHERE vkgroupid = {0} {1}", vkGroupId, creatorIdClause); result.CategoryD = dataGateway.Connection.Query <int>(query).SingleOrDefault(); } return(result); }
public AgeInformation GetAgeInformation(int projectId) { using (this.unitOfWorkProvider.CreateUnitOfWork()) { CategorialValue categories = this.statisticsProvider.GetAgeInformation(projectId); return(AgeInformation.Create(categories)); } }
public static TypeOfContentDataInfo Create(CategorialValue categories) { return(new TypeOfContentDataInfo() { Text = categories.CategoryA, Video = categories.CategoryB, Photo = categories.CategoryC, Link = categories.CategoryD }); }
public static GenderInformation Create(CategorialValue categories) { GenderInformation info = new GenderInformation(); info.Males = categories.CategoryA; info.Females = categories.CategoryB; info.Unknown = categories.CategoryC; return(info); }
public GenderInformation GetGenderInformationActiveUsers(int projectId, long filterCode) { using (this.unitOfWorkProvider.CreateUnitOfWork()) { var vkGroup = this.projectRepository.GetVkGroup(projectId); var filteringResult = this.GetFilteringResult(vkGroup, filterCode); CategorialValue categories = this.searcher.GetGenderInformationActiveUsers(vkGroup.Id, filteringResult); return(GenderInformation.Create(categories)); } }
public TypeOfContentDataInfo GetTypeOfContentDiagramData(int projectId, long filterCode) { using (this.unitOfWorkProvider.CreateUnitOfWork()) { var vkGroup = this.projectRepository.GetVkGroup(projectId); var filteringResult = this.GetFilteringResult(vkGroup, filterCode); CategorialValue diagramData = this.searcher.GetTypeOfContentDiagramData(vkGroup.Id, filteringResult); return(TypeOfContentDataInfo.Create(diagramData)); } }
public CategorialValue GetTypeOfContentDiagramData(int vkGroupId, AudienceFilteringResult filteringResult) { var result = new CategorialValue(); string userIds = filteringResult.IsAllMembers ? string.Empty : QueryArrayBuilder.GetString(filteringResult.Members.Select(m => m.VkMemberId).ToArray()); int postCount; int photoCount; int videoCount; using (IDataGateway dataGateway = this.dataGatewayProvider.GetDataGateway()) { string creatorIdClause = filteringResult.IsAllMembers ? string.Empty : string.Format("AND creatorid = ANY({0})", userIds); string memberIdClause = filteringResult.IsAllMembers ? string.Empty : string.Format("AND vkmemberid = ANY({0})", userIds); string query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM postcomment WHERE vkgroupid = {0} {1} GROUP BY vkpostid) AS sub", vkGroupId, creatorIdClause); postCount = dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM memberlike WHERE vkgroupid = {0} {1} AND itemtype = 1 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); postCount += dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM membershare WHERE vkgroupid = {0} {1} AND itemtype = 1 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); postCount += dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM videocomment WHERE vkgroupid = {0} {1} GROUP BY vkvideoid) AS sub", vkGroupId, creatorIdClause); var nullableVideoCount = dataGateway.Connection.Query <int?>(query).SingleOrDefault(); videoCount = nullableVideoCount.HasValue ? (int)nullableVideoCount : 0; query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM memberlike WHERE vkgroupid = {0} {1} AND itemtype = 4 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); videoCount += dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM membershare WHERE vkgroupid = {0} {1} AND itemtype = 4 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); videoCount += dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM memberlike WHERE vkgroupid = {0} {1} AND itemtype = 3 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); photoCount = dataGateway.Connection.Query <int>(query).SingleOrDefault(); query = string.Format("SELECT COALESCE(SUM(sub.count)::integer, 0) FROM (SELECT COUNT(*) FROM membershare WHERE vkgroupid = {0} {1} AND itemtype = 3 GROUP BY itemid) AS sub", vkGroupId, memberIdClause); photoCount += dataGateway.Connection.Query <int>(query).SingleOrDefault(); } result.CategoryA = postCount; result.CategoryB = videoCount; result.CategoryC = photoCount; return(result); }
public GenderInformation GetGenderInformationActiveUsers(int projectId, IList <ActiveUserInfo> users) { IList <MemberMainInfo> members = this.ToMemberMainInfo(users); using (this.unitOfWorkProvider.CreateUnitOfWork()) { var vkGroup = this.projectRepository.GetVkGroup(projectId); var filteringResult = new AudienceFilteringResult(members); CategorialValue categories = this.searcher.GetGenderInformationActiveUsers(vkGroup.Id, filteringResult); return(GenderInformation.Create(categories)); } }
public static EducationLevelInformation Create(CategorialValue categories) { var info = new EducationLevelInformation { Unknown = categories.CategoryA, Middle = categories.CategoryB, UncompletedHigher = categories.CategoryC, Higher = categories.CategoryD, PhD = categories.CategoryE }; return(info); }
/*public int Photos { get; set; } * public int Videos { get; set; }*/ public static LRCDiagramDataInfo Create(CategorialValue categories) { return(new LRCDiagramDataInfo() { Comments = categories.CategoryA, Reposts = categories.CategoryB, Likes = categories.CategoryC, Posts = categories.CategoryD, /*Photos = categories.CategoryE, * Videos = categories.CategoryF*/ }); }
public static AgeInformation Create(CategorialValue categories) { AgeInformation ageInfo = new AgeInformation(); ageInfo.Below14 = categories.CategoryA; ageInfo.Upper15Below24 = categories.CategoryB; ageInfo.Upper25Below34 = categories.CategoryC; ageInfo.Upper35Below44 = categories.CategoryD; ageInfo.Upper45Below54 = categories.CategoryE; ageInfo.Upper55 = categories.CategoryF; ageInfo.Unknown = categories.CategoryG; return(ageInfo); }
public CategorialValue GroupByBirthday(IEnumerable <BirthDate> birthdays, bool withoutMonthAndDay = false) { CategorialValue value = new CategorialValue(); foreach (var member in birthdays) { int age = !withoutMonthAndDay?member.GetAge() : member.GetAgeWithoutMonthAndDay(); if (age >= 1 && age < 14) { value.CategoryA++; } else if (age >= 15 && age <= 24) { value.CategoryB++; } else if (age >= 25 && age <= 34) { value.CategoryC++; } else if (age >= 35 && age <= 44) { value.CategoryD++; } else if (age >= 45 && age <= 54) { value.CategoryE++; } else if (age >= 55) { value.CategoryF++; } else { value.CategoryG++; } } return(value); }
public CategorialValue GetGenderInformationActiveUsers(int vkGroupId, AudienceFilteringResult result) { var genderInfo = new CategorialValue(); foreach (var member in result.Members) { switch (member.Gender) { case Gender.Male: genderInfo.CategoryA++; break; case Gender.Female: genderInfo.CategoryB++; break; case Gender.Unknown: genderInfo.CategoryC++; break; } } return(genderInfo); }