public object LoadEditor(HttpRequestParams request)
        {
            var id = request.GetGuid("id");

            using (var session = Context.OpenSession())
            {
                var scriptList = session
                    .Query<UserScript>()
                    .Select(s => new { id = s.Id, name = s.Name })
                    .ToArray();

                if (id.HasValue)
                {
                    var alarm = session.Get<AlarmTime>(id.Value);

                    return BuildEditorModel(
                        scriptList,
                        alarm.Id,
                        alarm.Name,
                        alarm.Hours,
                        alarm.Minutes,
                        alarm.Enabled,
                        alarm.UserScript.GetValueOrDefault(obj => (Guid?)obj.Id)
                    );
                }

                return BuildEditorModel(scriptList);
            }
        }
예제 #2
0
        private object apiSaveScript(HttpRequestParams request)
        {
            Guid? id = request.GetGuid("id");
            string name = request.GetRequiredString("name");
            string body = request.GetString("body");

            using (var session = Context.OpenSession())
            {
                var script = id.HasValue ? session.Get<UserScript>(id.Value) : new UserScript { Id = Guid.NewGuid() };
                script.Name = name;
                script.Body = body;

                session.SaveOrUpdate(script);
                session.Flush();
            }

            return null;
        }
        public object SaveAlarm(HttpRequestParams request)
        {
            var id = request.GetGuid("id");
            var name = request.GetString("name");
            var hours = request.GetRequiredInt32("hours");
            var minutes = request.GetRequiredInt32("minutes");
            var scriptId = request.GetGuid("scriptId");

            using (var session = Context.OpenSession())
            {
                var alarmTime = id.HasValue
                    ? session.Get<AlarmTime>(id.Value)
                    : new AlarmTime { Id = Guid.NewGuid() };

                var script = scriptId.HasValue
                    ? session.Load<UserScript>(scriptId.Value)
                    : null;

                alarmTime.Name = name;
                alarmTime.Hours = hours;
                alarmTime.Minutes = minutes;
                alarmTime.UserScript = script;
                alarmTime.Enabled = true;

                session.Save(alarmTime);
                session.Flush();
            }

            Context.GetPlugin<AlarmClockPlugin>().ReloadTimes();
            return null;
        }