static string Format(CountryStats x) { return ($"{x.TotalCases:n0} :: +{x.NewCases:n0} - " + $"{x.Name} - " + $"{x.TotalDeaths:n0} :: +{x.NewDeaths:n0}"); }
public IHttpActionResult CountryForecast([FromUri] string country, [FromUri] int year, [FromUri] int month) { var inputExample = new CountryStats { Country = country, Year = year, Month = month }; var client = new RestClient(_mlServerUrl); var request = new RestRequest(_countryForecastUrl, Method.POST); request.AddJsonBody(inputExample); var response = client.Execute <float>(request); return(Ok(response.Data)); }
public List <CountryStats> countryGraph([FromBody] trafficInput input) { ArticleController use = new ArticleController(); get_admin_gid_Result res; List <CountryStats> stats = new List <CountryStats>(); using (var data = db.get_admin_gid(input.site_url)) { res = data.FirstOrDefault <get_admin_gid_Result>(); } Authorization auth = new Authorization(res.Email); var result = auth.service.Data.Ga.Get(("ga:" + res.ga_id), use.convertDate(input.fromDate), use.convertDate(input.toDate), "ga:sessions"); result.Dimensions = "ga:country"; result.MaxResults = 5; result.Sort = "-ga:sessions"; result.Filters = "ga:landingPagePath=@" + use.convertUrl(input.url, input.site_url) + ";ga:campaign=@" + input.uid + ";ga:medium=@referral"; try { var final = result.Execute(); int count = (int)final.TotalResults; if (count != 0) { foreach (var item in final.Rows) { CountryStats temp = new CountryStats() { country = item[0], sessions = item[1] }; stats.Add(temp); } } }catch (Exception e) { } return(stats); }
public List <UserStats> statistics([FromBody] User_Analytic_Input analytics_Input) { //List < List < UserStats >> total_stats = new List<List<UserStats>>(); GraphController use = new GraphController(); List <UserStats> user_stats = new List <UserStats>(); List <get_user_traffic_Result> res = get_all_sites(analytics_Input.uid); foreach (var item in res) { Authorization auth = new Authorization(item.email); var result = auth.service.Data.Ga.Get("ga:" + item.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session + ",ga:newUsers"); result.Dimensions = "ga:date, " + analytics_Input.country; result.Filters = "ga:campaign=@" + analytics_Input.extra; try { var response = result.Execute(); if (response.TotalResults != 0) { foreach (var row in response.Rows) { UserStats temp = new UserStats() { date = new DateTime(), day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; // UserStats temp = user_stats.Last<UserStats>(); temp = user_stats.FirstOrDefault(x => x.day == row[0]); if (temp == null) { temp = new UserStats() { date = new DateTime(), day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; } if (!(temp.day.Equals(row[0]))) { UserStats stats = new UserStats() { date = new DateTime(), day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; stats.day = row[0]; stats.date = dateConverter(stats.day); if (row[1].Equals("Canada")) { stats.premium += long.Parse(row[2]); stats.total_earning += use.GetEarned(row[2], "premium"); stats.total_traffic += long.Parse(row[2]); } else { stats.non_premium += long.Parse(row[2]); stats.total_earning += use.GetEarned(row[2], "non-premium"); stats.total_traffic += long.Parse(row[2]); } var cFind = stats.country_stats.FirstOrDefault(x => x.country == row[1]); if (cFind == null) { cFind = new CountryStats() { country = row[1], sessions = "0", newSessions = "0" }; } else { stats.country_stats.Remove(cFind); } cFind.sessions = (Int64.Parse(cFind.sessions) + Int64.Parse(row[2])).ToString(); cFind.newSessions = (Int64.Parse(cFind.newSessions) + Int64.Parse(row[3])).ToString(); stats.country_stats.Add(cFind); user_stats.Add(stats); } else { user_stats.Remove(temp); CountryStats cTemp = new CountryStats(); if (row[1].Equals("Canada")) { temp.premium += long.Parse(row[2]); temp.total_earning += use.GetEarned(row[2], "premium"); temp.total_traffic += long.Parse(row[2]); } else { temp.non_premium += long.Parse(row[2]); temp.total_earning += use.GetEarned(row[2], "non-premium"); temp.total_traffic += long.Parse(row[2]); } var cFind = temp.country_stats.FirstOrDefault(x => x.country == row[1]); if (cFind == null) { cFind = new CountryStats() { country = row[1], sessions = "0", newSessions = "0" }; } else { temp.country_stats.Remove(cFind); } cFind.sessions = (Int64.Parse(cFind.sessions) + Int64.Parse(row[2])).ToString(); cFind.newSessions = (Int64.Parse(cFind.newSessions) + Int64.Parse(row[3])).ToString(); temp.country_stats.Add(cFind); user_stats.Add(temp); } } } // total_stats.Add(user_stats); } catch (Exception e) { } } return(user_stats); }
public List <AdminStats> AdminStatistics([FromBody] Analytics_Input analytics_Input) { //List < List < UserStats >> total_stats = new List<List<UserStats>>(); List <AdminStats> admin_stats = new List <AdminStats>(); GraphController use = new GraphController(); Authorization auth = new Authorization(analytics_Input.extra); var result = auth.service.Data.Ga.Get("ga:" + analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session + ",ga:newUsers"); result.Dimensions = "ga:date, " + analytics_Input.country; result.Filters = "ga:medium=@referral"; try { var response = result.Execute(); if (response.TotalResults != 0) { foreach (var row in response.Rows) { AdminStats temp = new AdminStats() { date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; // UserStats temp = user_stats.Last<UserStats>(); temp = admin_stats.FirstOrDefault(x => x.day == row[0]); if (temp == null) { temp = new AdminStats() { date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; } if (!(temp.day.Equals(row[0]))) { AdminStats stats = new AdminStats() { date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>() }; stats.day = row[0]; stats.date = dateConverter(row[0]); if (row[1].Equals("Canada")) { stats.premium += long.Parse(row[2]); stats.earning += use.GetEarned(row[2], "premium"); stats.total_traffic += long.Parse(row[2]); } else { stats.non_premium += long.Parse(row[2]); stats.earning += use.GetEarned(row[2], "non-premium"); stats.total_traffic += long.Parse(row[2]); } CountryStats cFind = new CountryStats() { country = row[1], sessions = "0", newSessions = "0" }; cFind.sessions = (Int64.Parse(cFind.sessions) + Int64.Parse(row[2])).ToString(); cFind.newSessions = (Int64.Parse(cFind.newSessions) + Int64.Parse(row[3])).ToString(); stats.country_stats.Add(cFind); admin_stats.Add(stats); } else { admin_stats.Remove(temp); CountryStats cTemp = new CountryStats(); if (row[1].Equals("Canada")) { temp.premium += long.Parse(row[2]); temp.earning += use.GetEarned(row[2], "premium"); temp.total_traffic += long.Parse(row[2]); } else { temp.non_premium += long.Parse(row[2]); temp.earning += use.GetEarned(row[2], "non-premium"); temp.total_traffic += long.Parse(row[2]); } CountryStats cFind = new CountryStats() { country = row[1], sessions = "0", newSessions = "0" }; cFind.sessions = (Int64.Parse(row[2])).ToString(); cFind.newSessions = (Int64.Parse(row[3])).ToString(); temp.country_stats.Add(cFind); admin_stats.Add(temp); } } } } catch (Exception e) { } return(admin_stats); }
public float CountryForecast(CountryStats data) { return(ForecastEngine.CountryForecast(data)); }
public void ImportScrape(cvScrapeData data) { if (data.heading.Contains("XX,XXX")) { return; } var existScrape = ctx.ScrapeRuns.FirstOrDefault(r => r.Heading.Trim() == data.heading.Trim()); if (existScrape != null) { return; } Console.WriteLine("updating..."); cvDataUtils.createGeolocationsFromScrapeFile(data); cvDataUtils.createCountriesFromScrapeFile(data); ScrapeRun scrape = new ScrapeRun() { CreateDate = DateTime.Now, Heading = data.heading, ScrapeDate = data.scrapeDate }; ctx.ScrapeRuns.Add(scrape); ctx.SaveChanges(); foreach (var geo in data.geoLocations) { foreach (var detail in geo.details) { var country = ctx.Countries.FirstOrDefault(r => r.Name == detail.country); if (country == null && detail.country != "TOTAL") { throw new Exception("country not found: " + detail.country); } if (detail.country == "TOTAL") { continue; } CountryStats stats = new CountryStats() { ScrapeRunId = scrape.Id, CountryId = country.Id, CreateDate = DateTime.Now, CaseCount = int.Parse(detail.cases.Trim().Replace(",", "").Replace("*", "")), DeathCount = int.Parse(detail.deaths.Trim().Replace(",", "").Replace("*", "")), Notes = detail.notes }; ctx.CountryStats.Add(stats); } } try { ctx.SaveChanges(); } catch (Exception ex) { throw ex; } }