示例#1
0
        protected void SyncPrompts(IEnumerable <MoodPromptModel> prompts)
        {
            if (prompts != null)
            {
                var delete = MoodPrompt.List().Where(mp => !prompts.Any(p => p.Id == mp.Id)).ToList();
                foreach (var p in delete)
                {
                    var r = p.Response;
                    if (p.Response.Mood == null)
                    {
                        r.Delete();
                    }
                    else
                    {
                        r.Prompt = null;
                        r.Save();
                    }
                    p.Delete();
                }
                foreach (var p in prompts)
                {
                    MoodPrompt prompt = MoodPrompt.ReadSafe(p.Id);
                    if (prompt == null)
                    {
                        prompt    = MoodPrompt.New();
                        prompt.Id = p.Id.ToString();
                        prompt.Save();

                        MoodResponse response = MoodResponse.New();
                        response.Id        = System.Guid.NewGuid().ToString();
                        response.Prompt    = prompt;
                        response.TimeStamp = p.Activity.TimeStamp;
                        response.Save();
                    }
                    prompt.Name               = p.Name;
                    prompt.NotificationText   = p.NotificationText;
                    prompt.Title              = p.Activity.Title;
                    prompt.TimeStamp          = p.Activity.TimeStamp;
                    prompt.ActiveFrom         = p.ActiveFrom;
                    prompt.ActiveTil          = p.ActiveTil;
                    prompt.Response.TimeStamp = prompt.TimeStamp;
                    prompt.Response.Save();
                    prompt.Save();
                }
            }
        }