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()); }
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); }