summaryrefslogtreecommitdiff
path: root/lib/services/program_provider_service.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/services/program_provider_service.dart')
-rw-r--r--lib/services/program_provider_service.dart116
1 files changed, 0 insertions, 116 deletions
diff --git a/lib/services/program_provider_service.dart b/lib/services/program_provider_service.dart
deleted file mode 100644
index 1512096..0000000
--- a/lib/services/program_provider_service.dart
+++ /dev/null
@@ -1,116 +0,0 @@
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:training_planner/services/ishift_provider_service.dart';
-import 'package:training_planner/shift.dart';
-import 'package:uuid/uuid.dart';
-import 'package:in_date_utils/in_date_utils.dart' as DateUtilities;
-import 'package:path_provider/path_provider.dart';
-
-class ShiftProviderService extends IProgramProviderService {
- ShiftProviderService() {
- writeShiftsFromFile([]);
- }
-
- Future<String> get _localPath async {
- final directory = await getApplicationDocumentsDirectory();
- return directory.path;
- }
-
- Future<File> get _localFile async {
- final path = await _localPath;
- return File('$path/shifts.json');
- }
-
- Future<void> writeShiftsFromFile(List<Shift> shifts) async {
- try {
- final file = await _localFile;
- String content = jsonEncode(shifts);
- await file.writeAsString(content);
- print('Writing to file: ' + content);
- } catch (e, stacktrace) {
- print(stacktrace);
- print(e);
- }
- }
-
- Future<List<Shift>> readShiftsFromFile() async {
- try {
- final file = await _localFile;
- final contents = await file.readAsString();
- final Iterable iterable = await jsonDecode(contents);
- List<Shift> data =
- List<Shift>.from(iterable.map((model) => Shift.fromJson(model)));
- print('Read from file: ' + contents);
-
- return data;
- } catch (e, stacktrace) {
- print(stacktrace);
- print(e);
- return [];
- }
- }
-
- @override
- Future<void> updateShift(Shift shift) async {
- List<Shift> savedShifts = await readShiftsFromFile();
- for (var item in savedShifts) {
- if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) {
- item.isActive = shift.isActive;
- item.start = shift.start;
- item.end = shift.end;
- item.type = shift.type;
- break;
- }
- }
- await writeShiftsFromFile(savedShifts);
- }
-
- @override
- Future<void> addShift(Shift shift) async {
- List<Shift> savedShifts = await readShiftsFromFile();
- for (var item in savedShifts) {
- if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) {
- return;
- }
- }
-
- savedShifts.add(shift);
- await writeShiftsFromFile(savedShifts);
- }
-
- @override
- Future<List<Shift>> getPastShifts() async {
- List<Shift> shifts = await readShiftsFromFile();
- shifts.sort((a, b) => a.start.compareTo(b.start));
-
- return shifts;
- }
-
- @override
- Future<List<Shift>> getShiftsForWeek(DateTime firstDayOfWeek) async {
- var items = await getPastShifts();
- List<Shift> result = [];
-
- for (var item in items) {
- if (DateUtilities.DateUtils.firstDayOfWeek(item.start) ==
- firstDayOfWeek) {
- result.add(item);
- }
- }
-
- 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);
- }
-}