From 9649d80a2b0a0c46a8ae68606d3e0cfe6f49faee Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Wed, 17 Aug 2022 11:09:46 +0200 Subject: v0.1 --- lib/services/local_shift_provider_service.dart | 116 ++++++++++++++++++++++++ lib/services/mock_program_provider_service.dart | 95 ------------------- lib/services/mock_shift_provider_service.dart | 95 +++++++++++++++++++ lib/services/program_provider_service.dart | 116 ------------------------ 4 files changed, 211 insertions(+), 211 deletions(-) create mode 100644 lib/services/local_shift_provider_service.dart delete mode 100644 lib/services/mock_program_provider_service.dart create mode 100644 lib/services/mock_shift_provider_service.dart delete mode 100644 lib/services/program_provider_service.dart (limited to 'lib/services') diff --git a/lib/services/local_shift_provider_service.dart b/lib/services/local_shift_provider_service.dart new file mode 100644 index 0000000..263d747 --- /dev/null +++ b/lib/services/local_shift_provider_service.dart @@ -0,0 +1,116 @@ +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 LocalShiftProviderService extends IProgramProviderService { + LocalShiftProviderService() { + writeShiftsFromFile([]); + } + + Future get _localPath async { + final directory = await getApplicationDocumentsDirectory(); + return directory.path; + } + + Future get _localFile async { + final path = await _localPath; + return File('$path/shifts.json'); + } + + Future writeShiftsFromFile(List 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> readShiftsFromFile() async { + try { + final file = await _localFile; + final contents = await file.readAsString(); + final Iterable iterable = await jsonDecode(contents); + List data = + List.from(iterable.map((model) => Shift.fromJson(model))); + print('Read from file: ' + contents); + + return data; + } catch (e, stacktrace) { + print(stacktrace); + print(e); + return []; + } + } + + @override + Future updateShift(Shift shift) async { + List 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 addShift(Shift shift) async { + List 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> getPastShifts() async { + List shifts = await readShiftsFromFile(); + shifts.sort((a, b) => a.start.compareTo(b.start)); + + return shifts; + } + + @override + Future> getShiftsForWeek(DateTime firstDayOfWeek) async { + var items = await getPastShifts(); + List result = []; + + for (var item in items) { + if (DateUtilities.DateUtils.firstDayOfWeek(item.start) == + firstDayOfWeek) { + result.add(item); + } + } + + return result; + } + + @override + Future deleteShift(Shift shift) async { + List savedShifts = await readShiftsFromFile(); + for (var item in savedShifts) { + if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { + savedShifts.remove(item); + break; + } + } + await writeShiftsFromFile(savedShifts); + } +} diff --git a/lib/services/mock_program_provider_service.dart b/lib/services/mock_program_provider_service.dart deleted file mode 100644 index 8f8db3e..0000000 --- a/lib/services/mock_program_provider_service.dart +++ /dev/null @@ -1,95 +0,0 @@ -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; - -class MockShiftProviderService extends IProgramProviderService { - List savedShifts = []; - - MockShiftProviderService() { - List shifts = []; - - shifts.add(Shift( - end: DateTime(2022, 8, 8, 20, 30), - start: DateTime(2022, 8, 8, 16, 30), - type: ShiftType.Avondrit)); - - shifts.add(Shift( - end: DateTime(2022, 8, 6, 20, 30), - start: DateTime(2022, 8, 6, 16, 30), - type: ShiftType.Avondrit)); - - shifts.add(Shift( - end: DateTime(2022, 8, 5, 20, 30), - start: DateTime(2022, 8, 5, 16, 30), - type: ShiftType.Avondrit)); - - shifts.add( - Shift(start: DateTime(2022, 8, 4, 16, 30), type: ShiftType.Avondrit)); - - shifts.add(Shift( - end: DateTime(2022, 8, 1, 17, 30), - start: DateTime(2022, 8, 1, 9, 30), - type: ShiftType.Dagrit)); - - shifts.add( - Shift(start: DateTime(2022, 8, 22, 9, 30), type: ShiftType.Dagrit)); - - shifts.add(Shift( - start: DateTime.now().subtract(Duration(hours: 2)), - type: ShiftType.Dagrit)); - - savedShifts = shifts; - } - - @override - Future updateShift(Shift shift) async { - for (var item in savedShifts) { - if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { - item.isActive = shift.isActive; - item.start = item.start; - item.end = item.end; - item.type = item.type; - break; - } - } - } - - @override - Future addShift(Shift shift) async { - for (var item in savedShifts) { - if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { - return; - } - } - savedShifts.add(shift); - } - - @override - Future> getPastShifts() async { - List shifts = savedShifts; - shifts.sort((a, b) => a.start.compareTo(b.start)); - - return shifts; - } - - @override - Future> getShiftsForWeek(DateTime firstDayOfWeek) async { - var items = await getPastShifts(); - List result = []; - - for (var item in items) { - if (DateUtilities.DateUtils.firstDayOfWeek(item.start) == - firstDayOfWeek) { - result.add(item); - } - } - - return result; - } - - @override - Future deleteShift(Shift shift) async { - savedShifts.remove(shift); - } -} diff --git a/lib/services/mock_shift_provider_service.dart b/lib/services/mock_shift_provider_service.dart new file mode 100644 index 0000000..8f8db3e --- /dev/null +++ b/lib/services/mock_shift_provider_service.dart @@ -0,0 +1,95 @@ +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; + +class MockShiftProviderService extends IProgramProviderService { + List savedShifts = []; + + MockShiftProviderService() { + List shifts = []; + + shifts.add(Shift( + end: DateTime(2022, 8, 8, 20, 30), + start: DateTime(2022, 8, 8, 16, 30), + type: ShiftType.Avondrit)); + + shifts.add(Shift( + end: DateTime(2022, 8, 6, 20, 30), + start: DateTime(2022, 8, 6, 16, 30), + type: ShiftType.Avondrit)); + + shifts.add(Shift( + end: DateTime(2022, 8, 5, 20, 30), + start: DateTime(2022, 8, 5, 16, 30), + type: ShiftType.Avondrit)); + + shifts.add( + Shift(start: DateTime(2022, 8, 4, 16, 30), type: ShiftType.Avondrit)); + + shifts.add(Shift( + end: DateTime(2022, 8, 1, 17, 30), + start: DateTime(2022, 8, 1, 9, 30), + type: ShiftType.Dagrit)); + + shifts.add( + Shift(start: DateTime(2022, 8, 22, 9, 30), type: ShiftType.Dagrit)); + + shifts.add(Shift( + start: DateTime.now().subtract(Duration(hours: 2)), + type: ShiftType.Dagrit)); + + savedShifts = shifts; + } + + @override + Future updateShift(Shift shift) async { + for (var item in savedShifts) { + if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { + item.isActive = shift.isActive; + item.start = item.start; + item.end = item.end; + item.type = item.type; + break; + } + } + } + + @override + Future addShift(Shift shift) async { + for (var item in savedShifts) { + if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { + return; + } + } + savedShifts.add(shift); + } + + @override + Future> getPastShifts() async { + List shifts = savedShifts; + shifts.sort((a, b) => a.start.compareTo(b.start)); + + return shifts; + } + + @override + Future> getShiftsForWeek(DateTime firstDayOfWeek) async { + var items = await getPastShifts(); + List result = []; + + for (var item in items) { + if (DateUtilities.DateUtils.firstDayOfWeek(item.start) == + firstDayOfWeek) { + result.add(item); + } + } + + return result; + } + + @override + Future deleteShift(Shift shift) async { + savedShifts.remove(shift); + } +} 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 get _localPath async { - final directory = await getApplicationDocumentsDirectory(); - return directory.path; - } - - Future get _localFile async { - final path = await _localPath; - return File('$path/shifts.json'); - } - - Future writeShiftsFromFile(List 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> readShiftsFromFile() async { - try { - final file = await _localFile; - final contents = await file.readAsString(); - final Iterable iterable = await jsonDecode(contents); - List data = - List.from(iterable.map((model) => Shift.fromJson(model))); - print('Read from file: ' + contents); - - return data; - } catch (e, stacktrace) { - print(stacktrace); - print(e); - return []; - } - } - - @override - Future updateShift(Shift shift) async { - List 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 addShift(Shift shift) async { - List 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> getPastShifts() async { - List shifts = await readShiftsFromFile(); - shifts.sort((a, b) => a.start.compareTo(b.start)); - - return shifts; - } - - @override - Future> getShiftsForWeek(DateTime firstDayOfWeek) async { - var items = await getPastShifts(); - List result = []; - - for (var item in items) { - if (DateUtilities.DateUtils.firstDayOfWeek(item.start) == - firstDayOfWeek) { - result.add(item); - } - } - - return result; - } - - @override - Future deleteShift(Shift shift) async { - List savedShifts = await readShiftsFromFile(); - for (var item in savedShifts) { - if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { - savedShifts.remove(item); - break; - } - } - await writeShiftsFromFile(savedShifts); - } -} -- cgit v1.2.3-70-g09d2