public string GetLikesOnPosts(int UserId, string StartDate, string EndDate, string ChartType) { List <ReportsGraph> ListReportsGraph = null; ReportsGraph ReportsGraph = null; var chartTestlist = new List <ChartTest>(); var utcNow = DateTime.UtcNow.Date; List <smSocialMediaProfile> listSocialMedia = _scheduleService.GetAllSocialMediaAccountByUserId(UserId); List <smPost> Post = null; var currentDate = DateTime.Now.Date; var SDate = !string.IsNullOrEmpty(StartDate) ? Convert.ToDateTime(StartDate) : currentDate.AddMonths(-1); var EDate = (!string.IsNullOrEmpty(EndDate) ? Convert.ToDateTime(EndDate) : currentDate).Date; // // End of day EDate = EDate.AddDays(1).AddTicks(-1); string[] MonthArray = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; //var ChartType = "Day"; //Request.QueryString["ChartType"]; var CalendarType = Request.QueryString["CalendarType"]; List <smPost> listPost = _scheduleService.GetAllPostListByUserId(UserId, SDate, EDate); ListReportsGraph = new List <ReportsGraph>(); if (ChartType == "Likes") { foreach (var item in listPost) { ReportsGraph = new ReportsGraph(); ReportsGraph.Count = item.LikesCount; ReportsGraph.Date = "P" + item.PostId.ToString(); ReportsGraph.TrackerName = "Likes"; ListReportsGraph.Add(ReportsGraph); } } else { foreach (var item in listPost) { ReportsGraph = new ReportsGraph(); ReportsGraph.Count = item.CommentsCount; ReportsGraph.Date = "P" + item.PostId.ToString(); ReportsGraph.TrackerName = "Comments"; ListReportsGraph.Add(ReportsGraph); } } var Serializer = new JavaScriptSerializer(); return(Serializer.Serialize(ListReportsGraph)); }
public string GetPostDetailsChart(int UserId, string StartDate, string EndDate, string ChartType) { List <ReportsGraph> ListReportsGraph = null; ReportsGraph ReportsGraph = null; var chartTestlist = new List <ChartTest>(); var utcNow = DateTime.UtcNow.Date; List <smSocialMediaProfile> listSocialMedia = _scheduleService.GetAllSocialMediaAccountByUserId(UserId); List <smPost> Post = null; var currentDate = DateTime.Now.Date; var SDate = !string.IsNullOrEmpty(StartDate) ? Convert.ToDateTime(StartDate) : currentDate.AddMonths(-1); var EDate = (!string.IsNullOrEmpty(EndDate) ? Convert.ToDateTime(EndDate) : currentDate).Date; // // End of day EDate = EDate.AddDays(1).AddTicks(-1); string[] MonthArray = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; //var ChartType = "Day"; //Request.QueryString["ChartType"]; var CalendarType = Request.QueryString["CalendarType"]; List <smPost> listPost = _scheduleService.GetAllPostListByUserId(UserId, SDate, EDate); ListReportsGraph = new List <ReportsGraph>(); if (listPost.Count > 0) { if (ChartType == "Day") { foreach (var item in listSocialMedia) { var test = new ChartTest { SourceName = item.SocialMedia, DataList = new List <Data>() }; for (var i = 31; i >= 1; i--) { var filtered = listPost.Where(m => m.SocialMediaProfileId == item.Fid).ToList(); var cDate = utcNow.AddDays(-i + 1).Date; Post = filtered.Where(m => m.PostDate.Date >= cDate && m.PostDate.Date < cDate.AddDays(1)).ToList(); var data = new Data { Date = utcNow.AddDays(-i + 1).Day + " " + MonthArray[utcNow.AddDays(-i + 1).Month - 1], Count = Post.Count > 0 ? Post.Count : 0 }; test.DataList.Add(data); } chartTestlist.Add(test); } } else if (ChartType == "Week") { foreach (var item in listSocialMedia) { var test = new ChartTest { SourceName = item.SocialMedia, DataList = new List <Data>() }; for (var i = 35; i >= 0; i -= 7) { var filtered = listPost.Where(m => m.SocialMediaProfileId == item.Fid).ToList(); Post = filtered.Where( m => m.PostDate.Date <= utcNow.AddDays(-i).Date&& m.PostDate.Date >= utcNow.AddDays(-(i + 7)).Date).ToList(); var data = new Data { Date = utcNow.AddDays(-i).Date.Day + " " + MonthArray[utcNow.AddDays(-i).Month - 1], Count = Post.Count, ToolTip = utcNow.AddDays(-(i + 7)).DayOfWeek + ", " + utcNow.AddDays(-(i + 7)).Day + ", " + MonthArray[utcNow.AddDays(-(i + 7)).Month - 1] + "<br/>Keyword Tracker: " + Post.Count }; test.DataList.Add(data); } chartTestlist.Add(test); } } else if (ChartType == "Month") { var date = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, 1); foreach (var item in listSocialMedia) { var test = new ChartTest { SourceName = item.SocialMedia, DataList = new List <Data>() }; var data = new Data { Date = date.Day + " " + MonthArray[date.AddMonths(-1).Month - 1] }; var filtered = listPost.Where(m => m.SocialMediaProfileId == item.Fid).ToList(); Post = filtered.Where(m => m.PostDate.Date <= date && m.PostDate.Date >= date.AddMonths(-1)) .ToList(); data.Count = Post.Count; test.DataList.Add(data); data = new Data(); data.Date = "1 " + MonthArray[DateTime.UtcNow.Month - 1]; var Filtered1 = listPost.Where(m => m.SocialMediaProfileId == item.Fid).ToList(); Post = Filtered1.Where(m => m.PostDate.Date >= date.Date).ToList(); data.Count = Post.Count; test.DataList.Add(data); chartTestlist.Add(test); } } else if (ChartType == "Custom") { var DateDiff = EDate >= SDate?Convert.ToInt32((EDate - SDate).TotalDays) : 0; foreach (var item in listSocialMedia) { var Test = new ChartTest(); Test.SourceName = item.SocialMedia; Test.DataList = new List <Data>(); Data data = null; for (var i = DateDiff + 1; i >= 1; i--) { data = new Data { Date = EDate.AddDays(-i + 1).Day + " " + MonthArray[EDate.AddDays(-i + 1).Month - 1] }; var Filtered = listPost.Where(m => m.SocialMediaProfileId == item.Fid).ToList(); var cDate = EDate.AddDays(-i + 1).Date; Post = Filtered.Where(m => m.PostDate.Date >= cDate && m.PostDate.Date < cDate.AddDays(1)).ToList(); data.Count = Post.Count > 0 ? Post.Count : 0; Test.DataList.Add(data); } chartTestlist.Add(Test); } } } var Serializer = new JavaScriptSerializer(); return(Serializer.Serialize(chartTestlist)); }