summaryrefslogtreecommitdiff
path: root/lib/services
diff options
context:
space:
mode:
Diffstat (limited to 'lib/services')
-rw-r--r--lib/services/ishift_provider_service.dart1
-rw-r--r--lib/services/mock_program_provider_service.dart5
-rw-r--r--lib/services/program_provider_service.dart12
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);
+ }
}