public ReportRequestStatus RequestGlobalMoodReport() { var app = ApplicationState.Current; ReportRequestStatus rtnStatus = new ReportRequestStatus(); lock (_lock) { this.Log("Service request for global report", "", 3); WebServiceJsonRequestStatus status = ServerJsonRequest("RequestGlobalReportInfo", new RequestGlobalReportInfoModel() { LastReportRequested = app.LastSuccessfulGlobalReportRequest }); if (status.Success) { GlobalMoodReportInfoModel reportInfo = status.Response.ToObject <GlobalMoodReportInfoModel> (); app.LastSuccessfulGlobalReportRequest = reportInfo.RequestTimeStamp; app.Save(); if (reportInfo.HasNewData) { UpdateReportInfo(reportInfo); rtnStatus.NewReportAvailable = true; } rtnStatus.Success = true; } } return(rtnStatus); }
public ReportRequestStatus RequestGlobalMoodReportData(MoodReport report) { ReportRequestStatus rtnStatus = new ReportRequestStatus(); try { var app = ApplicationState.Current; var startDate = report.StartsOn; List <GlobalMoodReportModel> days = new List <GlobalMoodReportModel> (); var fail = 3; while (fail > 0 && startDate < report.EndsOn) { var endDate = startDate.Date.AddDays(1).AddMinutes(-10); NSString key = new NSString("Status"); NSDictionary userInfo = NSDictionary.FromObjectAndKey(NSObject.FromObject(string.Format("Requesting day data for {0:ddd dd MMM}", startDate)), key); NSNotificationCenter.DefaultCenter.PostNotificationName("RequestingReportStatus", null, userInfo); var dataReqStatus = RequestGlobalMoodReportData(report.Id, startDate, endDate); if (dataReqStatus.Success) { //report = MoodReport.List ().FirstOrDefault (r => r.Id == reportId); //report.LastRequestedDay = startDate; //report.Save (); days.Add(dataReqStatus.ReportData); startDate = startDate.Date.AddDays(1); fail = 3; } else { fail--; } } if (fail > 0) { UpdateReportDays(report, days); rtnStatus.Success = true; rtnStatus.NewReportAvailable = true; } else { MyMoodLogger.Current.Log("Report download failed", "", 1); rtnStatus.Success = false; } } catch (Exception ex) { MyMoodLogger.Current.Error("Error downloading day data", ex, 1); } return(rtnStatus); }