Esempio n. 1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            // Load JObject from stream
            var jObject = JObject.Load(reader);

            // Create target request object based on "type" property
            if (jObject.Value <string>("type") == "list")
            {
                jObject.Remove("type");
                var target = new ListDataSource();
                serializer.Populate(jObject.CreateReader(), target);
                return(target);
            }

            if (jObject.Value <string>("type") == "object")
            {
                jObject.Remove("type");
                var target = new ObjectDataSource();
                serializer.Populate(jObject.CreateReader(), target);
                return(target);
            }

            var keyDataSource = new KeyValueDataSource();

            serializer.Populate(jObject.CreateReader(), keyDataSource);
            return(keyDataSource);
        }
Esempio n. 2
0
        public static async Task <SkillResponse> SingleEventResponse(APLSkillRequest request, LocalEventTime eventToRecognise, LocalDate currentDate, Group groupData, string intro)
        {
            var response = SpeechHelper.RespondToEvent(eventToRecognise, currentDate, intro);

            if (request.Context.System.Device.IsInterfaceSupported(Consts.APLInterface))
            {
                var dateDisplay =
                    $"{eventToRecognise.Date.ToDateTimeUnspecified():MMMM dd yyyy}, {eventToRecognise.Event.LocalTime}";
                var dataSource = new KeyValueDataSource
                {
                    Properties = new Dictionary <string, object>
                    {
                        { "backgroundUrl", groupData.KeyPhoto?.HighRes ?? groupData.GroupPhoto?.HighRes },
                        { "groupName", groupData.Name },
                        { "eventDate", dateDisplay },
                        { "eventTitle", eventToRecognise.Event.Name }
                    }
                };

                var filename = request.APLInterfaceDetails().Runtime.MaxVersion == APLDocumentVersion.V1 ? "assets/NextEvent.json" : "assets/NextEvent2.json";
                var document = await S3Helper.GetDocument(System.Environment.GetEnvironmentVariable("bucket"), filename);

                document.AddResponsiveDesign();
                response.Response.Directives.Add(new RenderDocumentDirective
                {
                    DataSources = new Dictionary <string, APLDataSource> {
                        { "eventData", dataSource }
                    },
                    Document = document,
                    Token    = eventToRecognise.Event.Id
                });
            }

            return(response);
        }