Example #1
0
        public async Task <List <DisplayItem> > RefreshAsync()
        {
            await keyVault.GetSecrets();

            List <DisplayItem> displayItems = new List <DisplayItem>();

            try
            {
                calendarItems.Clear();
                foreach (string query in queries)
                {
                    HttpResponseMessage httpResponse = await GetCalendarItemsAsync(query);

                    if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                    {
                        await RefreshTokens(token);

                        httpResponse = await GetCalendarItemsAsync(query);
                    }

                    if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string responseAsString = await httpResponse.Content.ReadAsStringAsync();

                        Rootobject_Calendar calendarItem = new Rootobject_Calendar();
                        JsonConvert.PopulateObject(responseAsString, calendarItem);
                        displayItems.AddRange(CreateDisplayItem(calendarItem));
                    }
                    else
                    {
                        logger.LogError("RefreshCalendarItems failed: " + httpResponse.StatusCode);
                    }
                }
            }
            catch (Exception e)
            {
                logger.LogError("Agenda: " + e.Message + e.StackTrace);
            }

            if (displayItems.Count == 0)
            {
                displayItems.Add(new DisplayItem {
                    Date = DateTime.Now, Line1 = "Geen komende agenda", Line2 = "afspraken.", DisplayMode = DisplayItem.DisplayModeEnum.Normal
                });
            }

            return(displayItems.OrderBy(x => x.Date).Take(MAX_ITEMS_TO_RETURN).ToList());
        }
Example #2
0
        private List <DisplayItem> CreateDisplayItem(Rootobject_Calendar calendarItem)
        {
            string             firstLine;
            string             secondLine;
            List <DisplayItem> displayItems = new List <DisplayItem>();

            if (calendarItem == null)
            {
                return(null);
            }

            foreach (var item in calendarItem.value)
            {
                DateTime time = item.Start.DateTime.AddHours(2);        // TODO timezone, zomertijd/wintertijd...
                string   dag;
                if (time.Date == DateTime.Today)
                {
                    dag = "Vandaag";
                }
                else if (time.Date == DateTime.Now.AddDays(1).Date)
                {
                    dag = "Morgen";
                }
                else if (time.Date == DateTime.Now.AddDays(2).Date)
                {
                    dag = "Overmorgen";
                }
                else
                {
                    dag = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(time.ToString("dddd", culture));
                }

                string subject = item.Subject.Trim().Replace('é', 'e');
                firstLine  = dag + " " + time.ToString("dd MMMM", culture).ToString().Trim();
                secondLine = (time.ToString("HH:mm", culture).Replace("00:00", "").Replace("01:00", "").Replace("02:00", "") + " " + subject);

                displayItems.Add(new DisplayItem
                {
                    Date        = time,
                    Line1       = firstLine,
                    Line2       = secondLine,
                    DisplayMode = DisplayItem.DisplayModeEnum.HorizontalScroll,
                    Delay       = 2000
                });
            }
            return(displayItems);
        }