mirror of
https://github.com/ckaczor/HomeMonitor.git
synced 2026-01-13 17:22:54 -05:00
Add holiday flag to data
This commit is contained in:
@@ -7,7 +7,7 @@ namespace ChrisKaczor.HomeMonitor.Calendar.Service.Controllers;
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class CalendarController(IConfiguration configuration, HttpClient httpClient) : ControllerBase
|
public class CalendarController(IConfiguration configuration, HttpClient httpClient) : ControllerBase
|
||||||
{
|
{
|
||||||
private async Task<IEnumerable<CalendarEntry>> GetCalendarEntries(string calendarUrl, int days)
|
private async Task<IEnumerable<CalendarEntry>> GetCalendarEntries(string calendarUrl, int days, bool isHoliday)
|
||||||
{
|
{
|
||||||
var data = await httpClient.GetStringAsync(calendarUrl);
|
var data = await httpClient.GetStringAsync(calendarUrl);
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ public class CalendarController(IConfiguration configuration, HttpClient httpCli
|
|||||||
|
|
||||||
var calendarEntries = calendar
|
var calendarEntries = calendar
|
||||||
.GetOccurrences(start, end)
|
.GetOccurrences(start, end)
|
||||||
.Select(o => new CalendarEntry(o))
|
.Select(o => new CalendarEntry(o, isHoliday))
|
||||||
.OrderBy(ce => ce.Start);
|
.OrderBy(ce => ce.Start);
|
||||||
|
|
||||||
return calendarEntries;
|
return calendarEntries;
|
||||||
@@ -27,12 +27,12 @@ public class CalendarController(IConfiguration configuration, HttpClient httpCli
|
|||||||
[HttpGet("upcoming")]
|
[HttpGet("upcoming")]
|
||||||
public async Task<ActionResult<IEnumerable<CalendarEntry>>> GetUpcoming([FromQuery] int days = 1, [FromQuery] bool includeHolidays = false)
|
public async Task<ActionResult<IEnumerable<CalendarEntry>>> GetUpcoming([FromQuery] int days = 1, [FromQuery] bool includeHolidays = false)
|
||||||
{
|
{
|
||||||
var calendarEntries = await GetCalendarEntries(configuration["Calendar:PersonalUrl"]!, days);
|
var calendarEntries = await GetCalendarEntries(configuration["Calendar:PersonalUrl"]!, days, false);
|
||||||
|
|
||||||
if (!includeHolidays)
|
if (!includeHolidays)
|
||||||
return Ok(calendarEntries);
|
return Ok(calendarEntries);
|
||||||
|
|
||||||
var holidayEntries = await GetCalendarEntries(configuration["Calendar:HolidayUrl"]!, days);
|
var holidayEntries = await GetCalendarEntries(configuration["Calendar:HolidayUrl"]!, days, true);
|
||||||
calendarEntries = calendarEntries.Concat(holidayEntries).OrderBy(c => c.Start);
|
calendarEntries = calendarEntries.Concat(holidayEntries).OrderBy(c => c.Start);
|
||||||
|
|
||||||
return Ok(calendarEntries);
|
return Ok(calendarEntries);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class HolidayController(IConfiguration configuration, HttpClient httpClie
|
|||||||
|
|
||||||
var calendarEntries = calendar
|
var calendarEntries = calendar
|
||||||
.GetOccurrences(start, end)
|
.GetOccurrences(start, end)
|
||||||
.Select(o => new CalendarEntry(o))
|
.Select(o => new CalendarEntry(o, true))
|
||||||
.OrderBy(ce => ce.Start);
|
.OrderBy(ce => ce.Start);
|
||||||
|
|
||||||
var nextCalendarEntry = calendarEntries.First();
|
var nextCalendarEntry = calendarEntries.First();
|
||||||
|
|||||||
@@ -5,10 +5,11 @@ using JetBrains.Annotations;
|
|||||||
namespace ChrisKaczor.HomeMonitor.Calendar.Service.Models;
|
namespace ChrisKaczor.HomeMonitor.Calendar.Service.Models;
|
||||||
|
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public class CalendarEntry(Occurrence occurrence)
|
public class CalendarEntry(Occurrence occurrence, bool isHoliday)
|
||||||
{
|
{
|
||||||
public string Summary { get; set; } = ((CalendarEvent)occurrence.Source).Summary;
|
public string Summary { get; set; } = ((CalendarEvent)occurrence.Source).Summary;
|
||||||
public bool IsAllDay { get; set; } = ((CalendarEvent)occurrence.Source).IsAllDay;
|
public bool IsAllDay { get; set; } = ((CalendarEvent)occurrence.Source).IsAllDay;
|
||||||
public DateTimeOffset Start { get; set; } = occurrence.Period.StartTime.AsDateTimeOffset;
|
public DateTimeOffset Start { get; set; } = occurrence.Period.StartTime.AsDateTimeOffset;
|
||||||
public DateTimeOffset End { get; set; } = occurrence.Period.EndTime.AsDateTimeOffset;
|
public DateTimeOffset End { get; set; } = occurrence.Period.EndTime.AsDateTimeOffset;
|
||||||
|
public bool IsHoliday { get; set; } = isHoliday;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user