8c765e4d49
refactor: temporarily rename old IGoogleCalendarService to IOldGoogleCalendarService to avoid naming conflict with new marker interface
...
This temporary change is necessary because the new ICalendarService interfaces
(IGoogleCalendarService, INextcloudCalendarService) now exist as marker interfaces.
The old interface will be fully removed in Task 4 when GoogleCalendarService is
refactored to implement the new ICalendarService contract.
2026-04-10 22:41:01 +02:00
Copilot
5103aecacf
Add Google Calendar integration with direct sync functionality and rate limiting protection ( #45 )
...
* Initial plan
* Implement Google Calendar integration with sync button and calendar selection
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add Google Calendar sync documentation and finalize implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix build errors
* Fix Google Calendar rate limiting issues with retry logic and delays
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* optimize
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-09-06 16:47:48 +02:00
Copilot
e8db13191e
Add Google OAuth authentication with configurable authorized emails ( #29 )
...
* Initial plan
* Add Google authentication with authorized email configuration
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Complete Google authentication implementation with documentation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix CORS error by removing [Authorize] from auth user endpoint
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add authorization attribute to ConfigurationController for security
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix JavaScript error in login button by correcting window.location.href usage
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix Google OAuth redirect URI configuration to resolve authentication error
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix OAuth state validation error by specifying authentication scheme in callback
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix OAuth state validation error by improving authentication configuration
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix authentication setup documentation with correct redirect URI
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix navigation buttons overlapping with authentication header
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove unused unsing
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-27 21:18:50 +02:00
Copilot
7d8e40b9cf
Add Configuration UI for Transport and Shift Settings with Import/Export ( #27 )
...
* Initial plan
* Complete configuration UI implementation with working dialog, API endpoints, and file import/export
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Refactor to inject IConfigurationService directly instead of using factory singletons
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove redundant ShiftService and use IConfigurationService directly
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-26 17:17:09 +02:00
Copilot
73abfac988
Implement caching for transport connection results with IMemoryCache ( #26 )
...
* Initial plan
* Implement caching for transport connection results with IMemoryCache
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Change cache duration from minutes to days
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement CachedTransportService design with interface separation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement persistent file-based cache to survive application restarts
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Revert persistent file-based cache implementation, restore IMemoryCache usage
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Code cleanup
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-25 21:15:13 +02:00
Claudio Schaad
f5387e7b41
Cleanup transport service ( #22 )
2025-08-23 19:16:40 +02:00
Copilot
2530e729ce
Implement transport time improvements: departure station display and break time logic ( #17 )
...
* Initial plan
* Implement transport time improvements: departure station display and break time logic
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Enhance code
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 20:04:53 +02:00
Copilot
2dc437ac9c
Add real-time SBB transport integration with enhanced UI feedback and improved timing logic ( #2 )
...
* Initial plan
* Initial project setup - update to .NET 8.0 for compatibility
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Complete SBB transport integration implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Revert to .NET 9 and separate transport info into ShiftTransport class
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Make safety buffer minutes configurable via appsettings
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Migrade pdf export service
* Update gitignore
* Implement new approach: real-time transport data per shift selection with ShiftWithTransport view model
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Refactor export methods to directly use ShiftWithTransport instead of converting to separate parameters
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Move ShiftWithTransport class to its own file
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Code cleanup
* Fix transport timing logic to respect safety buffer and find best available connections
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: clayschaad <c.schaad@pog.ch>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
2025-08-19 22:08:59 +02:00
88b3237c6c
Initial Version
2025-08-17 20:15:45 +02:00