// date parameter is were updated to // divide list up into counties and add to database document public void AddList(List<AlteredRecord> list,DateTime date) { DateTime lastDate = date; // find date the update file is updated to foreach (AlteredRecord ar in list) { // get the last date in the list so know were database has been updated to if (ar.SoldOn > lastDate) { lastDate = ar.SoldOn; } } // set date updated too as last date in list WorkerRole.dateTimeUpdatedTo = lastDate; // loop through every county 1 at a time for (County co = County.Kerry; co <= County.Clare; co++) { if (co == County.Dublin) // Dublin is too large and needs to be uploaded to database in months { foreach (AlteredRecord ar in list) { if (ar.County.Equals(co.ToString())) { templist.Add(ar); } } // only need to update around date of last update, so: int day = date.Day; int month = date.Month; string year = date.Year.ToString(); foreach (AlteredRecord ar in templist) { if (ar.SoldOn.Month == month) { templist1.Add(ar); } } // create database connection with list and county DatabaseConnect dba = new DatabaseConnect(co.ToString(), templist1); // update the document with new data dba.ModifyDocumentDublin(year, month); // if any data for next month deal with it if (lastDate.Month > month) { foreach (AlteredRecord ar in templist) // if any data for next month is in the list { if (ar.SoldOn.Month == lastDate.Month) { templist3.Add(ar); } } // create database connection with list and county DatabaseConnect dbd = new DatabaseConnect(co.ToString(), templist3); // update the document with new data dbd.ModifyDocumentDublin(year, lastDate.Month); } // clear the lists templist.Clear(); templist1.Clear(); templist2.Clear(); templist3.Clear(); } else // rest of Ireland { foreach (AlteredRecord ar in list) { if (ar.County.Equals(co.ToString())) { templist.Add(ar); } } foreach (AlteredRecord ar in templist) // divide in 2 { if (ar.SoldOn.Month == 1 || ar.SoldOn.Month == 2 || ar.SoldOn.Month == 3 || ar.SoldOn.Month == 4 || ar.SoldOn.Month == 5 || ar.SoldOn.Month == 6) { templist1.Add(ar); } else { templist2.Add(ar); } } // depending on date send appropriate list to database int day = date.Day; int month = date.Month; string year = date.Year.ToString(); if (month>=1 && month<=6) // first 6 months update group A { DatabaseConnect db = new DatabaseConnect(co.ToString(), templist1); db.ModifyDocumentBoggers(year, 'A'); } else // update last 6 months in group B { DatabaseConnect db2 = new DatabaseConnect(co.ToString(), templist2); db2.ModifyDocumentBoggers(year, 'B'); } // clear temp lists templist.Clear(); templist1.Clear(); templist2.Clear(); } } }
private void RunAsync() { // check if new documents need to be created // documents created on first of every month for dublin and 1st of january and july for rest of country if (DateTime.Now.Day == 1) { Trace.TraceInformation("Worker role running on first of month, creating new documents"); string year = DateTime.Now.Year.ToString()+"_"; List<AlteredRecord> list = new List<AlteredRecord>(); if (DateTime.Now.Month == 1) { for (County co = County.Kerry; co <= County.Clare; co++) { if (co == County.Dublin) { DatabaseConnect db = new DatabaseConnect(co.ToString(), list); db.CreateDocument(year+"1"); } else { DatabaseConnect db = new DatabaseConnect(co.ToString(), list); db.CreateDocument(year + "A"); } } } else if (DateTime.Now.Month == 2) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "2"); } else if (DateTime.Now.Month == 3) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "3"); } else if (DateTime.Now.Month == 4) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "4"); } else if (DateTime.Now.Month == 5) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "5"); } else if (DateTime.Now.Month == 6) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "6"); } else if(DateTime.Now.Month == 7) { for (County co = County.Kerry; co <= County.Clare; co++) { if (co == County.Dublin) { DatabaseConnect db = new DatabaseConnect(co.ToString(), list); db.CreateDocument(year + "7"); } else { DatabaseConnect db = new DatabaseConnect(co.ToString(), list); db.CreateDocument(year + "B"); } } } else if (DateTime.Now.Month == 8) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "8"); } else if (DateTime.Now.Month == 9) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "9"); } else if (DateTime.Now.Month == 10) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "10"); } else if (DateTime.Now.Month == 11) { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "11"); } else { DatabaseConnect db = new DatabaseConnect("Dublin", list); db.CreateDocument(year + "12"); } } // get dates from database document and check them against the websites dates to see if update available UpdateDates update = DatabaseDates.ReadDatesDocument().Result; dateTimeLastUpdated = update.lastUpdate; dateTimeUpdatedTo = update.updatedTo; if (UpdateAvailable(update.lastUpdate)) { // the main tasks of an update MainTasks(dateTimeUpdatedTo.Year.ToString()); } }