Esempio n. 1
0
        // 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
                        }
                    });
                }
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }