diff options
Diffstat (limited to 'lib/services')
| -rw-r--r-- | lib/services/ishift_provider_service.dart | 1 | ||||
| -rw-r--r-- | lib/services/mock_program_provider_service.dart | 5 | ||||
| -rw-r--r-- | lib/services/program_provider_service.dart | 12 |
3 files changed, 18 insertions, 0 deletions
diff --git a/lib/services/ishift_provider_service.dart b/lib/services/ishift_provider_service.dart index 2022536..7f0e6d5 100644 --- a/lib/services/ishift_provider_service.dart +++ b/lib/services/ishift_provider_service.dart @@ -7,4 +7,5 @@ abstract class IProgramProviderService { Future<List<Shift>> getShiftsForWeek(DateTime firstDayOfWeek); Future<void> updateShift(Shift shift); Future<void> addShift(Shift shift); + Future<void> deleteShift(Shift shift); } diff --git a/lib/services/mock_program_provider_service.dart b/lib/services/mock_program_provider_service.dart index 5a1f9f4..8f8db3e 100644 --- a/lib/services/mock_program_provider_service.dart +++ b/lib/services/mock_program_provider_service.dart @@ -87,4 +87,9 @@ class MockShiftProviderService extends IProgramProviderService { return result; } + + @override + Future<void> deleteShift(Shift shift) async { + savedShifts.remove(shift); + } } diff --git a/lib/services/program_provider_service.dart b/lib/services/program_provider_service.dart index 375ed8b..1512096 100644 --- a/lib/services/program_provider_service.dart +++ b/lib/services/program_provider_service.dart @@ -101,4 +101,16 @@ class ShiftProviderService extends IProgramProviderService { return result; } + + @override + Future<void> deleteShift(Shift shift) async { + List<Shift> savedShifts = await readShiftsFromFile(); + for (var item in savedShifts) { + if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { + savedShifts.remove(item); + break; + } + } + await writeShiftsFromFile(savedShifts); + } } |
