コード例 #1
0
ファイル: MyMoodService.cs プロジェクト: ruscal/myMood
        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);
        }
コード例 #2
0
ファイル: MyMoodService.cs プロジェクト: ruscal/myMood
        protected void UpdateReportInfo(GlobalMoodReportInfoModel reportInfo)
        {
            Console.WriteLine("Update report info");
            if (reportInfo.Application != null)
            {
                UpdateApplication(reportInfo.Application, true);
            }

            if (reportInfo.Prompts != null)
            {
                Console.WriteLine("Update prompts");
                Activity.List("ActivityType=@ActivityType", new{ ActivityType = ActivityType.MoodPrompt }).DeleteAll();
                foreach (var p in reportInfo.Prompts)
                {
                    var prompt = Activity.New();
                    prompt.Id           = p.Id;
                    prompt.ActivityType = ActivityType.MoodPrompt;
                    prompt.Title        = p.Title;
                    prompt.TimeStamp    = p.TimeStamp;
                    prompt.Save();
                }
            }

            if (reportInfo.Events != null)
            {
                Console.WriteLine("Update events");
                Activity.List("ActivityType=@ActivityType", new{ ActivityType = ActivityType.Event }).DeleteAll();
                foreach (var e in reportInfo.Events)
                {
                    var evnt = Activity.New();
                    evnt.Id           = e.Id;
                    evnt.ActivityType = ActivityType.Event;
                    evnt.Title        = e.Title;
                    evnt.TimeStamp    = e.TimeStamp;
                    evnt.Save();
                }
            }

            if (reportInfo.HasNewData)
            {
                MoodReport report   = MoodReport.New();
                var        reportId = System.Guid.NewGuid().ToString();
                report.Id               = reportId;
                report.RequestedOn      = reportInfo.RequestTimeStamp;
                report.StartsOn         = reportInfo.ReportStartDate;
                report.EndsOn           = reportInfo.ReportEndDate;
                report.RequestCompleted = 0;
                report.DayStartsOn      = reportInfo.DayStartsOn;
                report.DayEndsOn        = reportInfo.DayEndsOn;
                report.RequestCompleted = 1;
                report.Save();
            }
        }