static void update_totals() { AwarenessDataClassesDataContext dc = new AwarenessDataClassesDataContext(); System.Linq.IQueryable<omniture_count> response = from result in dc.omniture_counts where 1 == 1 select result; foreach (omniture_count row in response) { try { Console.WriteLine(String.Format("{0} - {1}\r\n", row.Geo_Country, row.Count)); Geo_Total gt = (from c in dc.Geo_Totals where c.Geo_Country == row.Geo_Country select c).Single(); gt.Omniture = row.Count; dc.SubmitChanges(); } catch (InvalidOperationException io) { Console.WriteLine(io.Message); } } dc.SubmitChanges(); }
static void Main(string[] args) { String json; DateTime runDateTime = DateTime.UtcNow; // Not Run all //DateTime runDateTime = new DateTime(2015, 8, 26); // Run all int runHour = 0; String city = String.Empty; String country = String.Empty; Decimal latitude = 0; Decimal longitude = 0; //while (runDateTime < DateTime.Now.AddDays(-1)) // Run all //{ // Run all // We want the prevous hours data // If it's zero, we want the last hour of yesterday if (runDateTime.Hour == 0) { runDateTime = runDateTime.AddDays(-1); runHour = 23; } else runHour = runDateTime.Hour - 1; // Change run date time to zero minutes,secomnds runDateTime = new DateTime(runDateTime.Year, runDateTime.Month, runDateTime.Day, runHour, 0, 0, 0); //runHour = 0; // Run all // Run report and return report ID string reportValue = QueueOmnitureQueueReport(runDateTime); // We will wait for 10*30 seconds for the report to be ready int attemp = 10; Boolean reportReady = true; do { reportReady = true; json = GetOmnitureQueueReport(reportValue); if (json.Contains("(400) Bad Request")) { Thread.Sleep(30000); // wait 10 seconds and try again reportReady = false; attemp--; } } while (attemp > 0 && !reportReady); if (attemp != 0) { XmlDocument xd = new XmlDocument(); xd = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"Root\":" + json + "}"); DataSet ds = new DataSet(); ds.ReadXml(new XmlNodeReader(xd)); AwarenessDataClassesDataContext dc = new AwarenessDataClassesDataContext(); //for (int i = 0; i < 24; i++) // Run all //{ // Run all // runHour = i; // Run all DataRow[] dataRows = ds.Tables["data"].Select(string.Format("[hour]='{0}'", runHour), "", DataViewRowState.CurrentRows); foreach (DataRow dataRow in dataRows) { if (ds.Tables["breakdown"] != null) { DataRow[] breakdownRows = ds.Tables["breakdown"].Select(String.Format("[data_Id]={0}", dataRow["data_Id"])); foreach (DataRow breakdownRow in breakdownRows) { string name = breakdownRow["name"].ToString(); string url = breakdownRow["url"].ToString(); string geo_city = string.Empty; string geo_country = string.Empty; DataRow[] countsRows = ds.Tables["counts"].Select(String.Format("[breakdown_Id]={0}", breakdownRow["breakdown_Id"])); Int32 count0 = Convert.ToInt32(countsRows[0][0]); Int32 count1 = Convert.ToInt32(countsRows[1][0]); Int32 count2 = Convert.ToInt32(countsRows[2][0]); if (count0 > 0 || count1 > 0 || count2 > 0) // Save the row. { city = String.Empty; country = String.Empty; latitude = 0; longitude = 0; GetCountryCity(name, ref city, ref country); // Se if the city is a country capitial GetCaptialLatitudeLongitude(city, country, ref latitude, ref longitude, ref geo_city, ref geo_country); // If not see if you can find the city in the CountryCity table if (latitude == 0 && longitude == 0) GetCityLatitudeLongitude(city, country, ref latitude, ref longitude, ref geo_city, ref geo_country); // If we've still not found the city/country then just get the capital for that country if (latitude == 0 && longitude == 0) GetCaptialLatitudeLongitude(country, ref latitude, ref longitude, ref geo_city, ref geo_country); // if we still don't have ac lat/long then list in under "Unknown" if (latitude == 0 && longitude == 0) { geo_city = "Unknown"; geo_country = "Unknown"; } string line = string.Format("Date/Time: {0}, Country: {1}, URL: {2}, pageViews: {3}, visits: {4}", runDateTime.ToString(""), name, url, count0, count1); Console.WriteLine(line); omniture_raw_count row = new omniture_raw_count(); row.created_date = runDateTime; // Not Run all //row.created_date = runDateTime.AddHours(runHour); // Run all row.City = city; row.Country = country; row.pageViews = count0; row.visits = count1; row.uniquevisitors = count2; row.latitude = latitude; row.longitude = longitude; row.Geo_City = geo_city; row.Geo_Country = geo_country; dc.omniture_raw_counts.InsertOnSubmit(row); } } } } dc.SubmitChanges(); update_totals(); // not Run all //} // Run all //update_totals(); // Run all } //runDateTime = runDateTime.AddDays(1); // Run all //} // Run all }