// quick submit -dont care if works or not as sync should capture any fails public void SubmitMoodResponse(MoodResponse response) { if (response != null) { var app = ApplicationState.Current; lock (_lock) { this.Log("Submitting response - " + response.Mood.Name, "", 2); WebServiceJsonRequestStatus status = ServerJsonRequest("SubmitMoodResponse", new SubmitResponseModel() { rid = app.ResponderId, reg = app.ResponderRegion, apn = app.APNSId, r = new MoodResponseUpdateModel() { i = response.Id, m = response.Mood.Name, t = response.TimeStamp, p = response.Prompt != null ? response.Prompt.Id : null } }); } } }
public void CheckForServiceUpdates() { var app = ApplicationState.Current; lock (_lock) { this.Log("Service request to Check for Service Updates", "", 3); WebServiceJsonRequestStatus status = ServerJsonRequest("GetUpdates", new GetServiceUpdatesModel() { rid = app.ResponderId, reg = app.ResponderRegion, apn = app.APNSId, LastUpdate = app.LastSuccessfulServiceUpdate }); app = ApplicationState.Current; if (status.Success) { UpdateAppFromServiceModel updates = status.Response.ToObject <UpdateAppFromServiceModel> (); if (updates.HasPromptUpdates || updates.Application != null) { ApplyUpdates(updates); } app = ApplicationState.Current; app.LastSuccessfulServiceUpdate = DateTime.UtcNow; app.Save(); } } }
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 ServiceRequestStatus RegisterInterestInApp(string recipientEmailAddress) { var app = ApplicationState.Current; ServiceRequestStatus rtnStatus = new ServiceRequestStatus(); lock (_lock) { this.Log("Service request for registering interest", recipientEmailAddress, 3); WebServiceJsonRequestStatus status = ServerJsonRequest("RegisterInterestInApp", new RegisterInterestInAppModel() { rid = app.ResponderId, reg = app.ResponderRegion, apn = app.APNSId, InterestedParty = recipientEmailAddress }); if (status.Success) { ResponseModel response = status.Response.ToObject <ResponseModel> (); rtnStatus.Success = response.Success; } else { rtnStatus.Success = status.Success; } } return(rtnStatus); }
protected ReportDataRequestStatus RequestGlobalMoodReportData(string reportId, DateTime startDate, DateTime endDate) { ReportDataRequestStatus rtnStatus = new ReportDataRequestStatus(); lock (_lock) { this.Log("Service request for global report data", reportId, 3); WebServiceJsonRequestStatus status = ServerJsonRequest("RequestGlobalReportData", new GlobalMoodReportDataRequestModel() { StartDate = startDate, EndDate = endDate, ReportId = reportId }); if (status.Success) { GlobalMoodReportModel reportModel = status.Response.ToObject <GlobalMoodReportModel> (); //var report = MoodReport.List ().FirstOrDefault (r => r.Id == reportId); rtnStatus.ReportData = reportModel; } rtnStatus.Success = status.Success; } return(rtnStatus); }
public ServiceSyncStatus SyncDataWithServer() { ServiceSyncStatus rtnStatus = new ServiceSyncStatus(); lock (_lock) { this.Log("Service request to Sync with Server", "", 3); var app = ApplicationState.Current; IEnumerable <MoodResponseUpdateModel> responsesToUpdate = GetResponsesToSaveToServer(app.LastSuccessfulDataPush); rtnStatus.HasOutstandingResponsesToSync = responsesToUpdate.Count() > 0; WebServiceJsonRequestStatus status = SendSyncRequest(app, responsesToUpdate); app = ApplicationState.Current; if (status.Success) { UpdateAppFromServiceModel updates = status.Response.ToObject <UpdateAppFromServiceModel> (); if (status.Success) { ApplyUpdates(updates); rtnStatus.HasPromptUpdates = updates.HasPromptUpdates; rtnStatus.HasOutstandingResponsesToSync = false; } //server has different total of responses so resubmit all if (updates.ResError) { this.Log("Server res error - resyncing", "", 2); status = SendSyncRequest(app, GetResponsesToSaveToServer(null)); if (status.Success) { ApplyUpdates(updates); rtnStatus.HasPromptUpdates = updates.HasPromptUpdates; rtnStatus.HasOutstandingResponsesToSync = false; } } } rtnStatus.Success = status.Success; rtnStatus.LastSuccessfulDataPush = app.LastSuccessfulDataPush; rtnStatus.SuccessLevel = GetSyncSuccessLevel(status.Success, responsesToUpdate.Count()); } return(rtnStatus); }
public ServiceRequestStatus RegisterForAPNS(string apnsId) { var app = ApplicationState.Current; ServiceRequestStatus rtnStatus = new ServiceRequestStatus(); lock (_lock) { this.Log("Service request for APNS registration", apnsId, 2); WebServiceJsonRequestStatus status = ServerJsonRequest("RegisterForAPNS", new RequestModelBase() { rid = app.ResponderId, reg = app.ResponderRegion, apn = apnsId }); rtnStatus.Success = status.Success; } return(rtnStatus); }