Skip to content

Commit

Permalink
[Application] Added a event to delete all the sessions and one to del…
Browse files Browse the repository at this point in the history
…ete all the items inside a session
  • Loading branch information
Wolfteam committed Jul 11, 2021
1 parent b528b92 commit 7ac749d
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 26 deletions.
Expand Up @@ -175,6 +175,10 @@ class CalculatorAscMaterialsBloc extends Bloc<CalculatorAscMaterialsEvent, Calcu
return _updateItem(e.sessionKey, e.index, updatedWeapon);
},
close: (e) async => _initialState,
clearAllItems: (e) async {
await _dataService.deleteAllCalAscMatSessionItems(e.sessionKey);
return const CalculatorAscMaterialsState.initial(items: [], summary: []);
},
);

yield s;
Expand Down
Expand Up @@ -56,4 +56,6 @@ class CalculatorAscMaterialsEvent with _$CalculatorAscMaterialsEvent {
}) = _RemoveItem;

const factory CalculatorAscMaterialsEvent.close() = _Close;

const factory CalculatorAscMaterialsEvent.clearAllItems(int sessionKey) = _ClearAllItems;
}
Expand Up @@ -22,31 +22,37 @@ class CalculatorAscMaterialsSessionsBloc extends Bloc<CalculatorAscMaterialsSess
@override
Stream<CalculatorAscMaterialsSessionsState> mapEventToState(CalculatorAscMaterialsSessionsEvent event) async* {
final s = await event.map(
init: (_) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsLoaded();
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
createSession: (e) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsCreated();
await _dataService.createCalAscMatSession(e.name.trim(), currentState.sessions.length);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
updateSession: (e) async {
final position = currentState.sessions.firstWhere((el) => el.key == e.key).position;
await _telemetryService.trackCalculatorAscMaterialsSessionsUpdated();
await _dataService.updateCalAscMatSession(e.key, e.name.trim(), position);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
deleteSession: (e) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsDeleted();
await _dataService.deleteCalAscMatSession(e.key);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
close: (e) async => const CalculatorAscMaterialsSessionsState.loaded(sessions: []));
init: (_) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsLoaded();
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
createSession: (e) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsCreated();
await _dataService.createCalAscMatSession(e.name.trim(), currentState.sessions.length);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
updateSession: (e) async {
final position = currentState.sessions.firstWhere((el) => el.key == e.key).position;
await _telemetryService.trackCalculatorAscMaterialsSessionsUpdated();
await _dataService.updateCalAscMatSession(e.key, e.name.trim(), position);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
deleteSession: (e) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsDeleted();
await _dataService.deleteCalAscMatSession(e.key);
final sessions = _dataService.getAllCalAscMatSessions();
return CalculatorAscMaterialsSessionsState.loaded(sessions: sessions);
},
close: (e) async => const CalculatorAscMaterialsSessionsState.loaded(sessions: []),
deleteAllSessions: (_) async {
await _telemetryService.trackCalculatorAscMaterialsSessionsDeleted(all: true);
await _dataService.deleteAllCalAscMatSession();
return const CalculatorAscMaterialsSessionsState.loaded(sessions: []);
},
);

yield s;
}
Expand Down
Expand Up @@ -18,4 +18,6 @@ class CalculatorAscMaterialsSessionsEvent with _$CalculatorAscMaterialsSessionsE
}) = _DeleteSession;

const factory CalculatorAscMaterialsSessionsEvent.close() = _Close;

const factory CalculatorAscMaterialsSessionsEvent.deleteAllSessions() = _DeleteAllSessions;
}
4 changes: 4 additions & 0 deletions lib/domain/services/data_service.dart
Expand Up @@ -13,6 +13,8 @@ abstract class DataService {

Future<void> deleteCalAscMatSession(int sessionKey);

Future<void> deleteAllCalAscMatSession();

Future<void> addCalAscMatSessionItems(int sessionKey, List<ItemAscensionMaterials> items);

/// Adds a new calc. item to the provided session by using the [sessionKey].
Expand All @@ -37,6 +39,8 @@ abstract class DataService {

Future<void> deleteCalAscMatSessionItem(int sessionKey, int itemIndex, {bool redistribute = true});

Future<void> deleteAllCalAscMatSessionItems(int sessionKey);

List<CharacterCardModel> getAllCharactersInInventory();

List<WeaponCardModel> getAllWeaponsInInventory();
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/services/telemetry_service.dart
Expand Up @@ -46,7 +46,7 @@ abstract class TelemetryService {

Future<void> trackCalculatorAscMaterialsSessionsUpdated();

Future<void> trackCalculatorAscMaterialsSessionsDeleted();
Future<void> trackCalculatorAscMaterialsSessionsDeleted({bool all = false});

Future<void> trackItemAddedToInventory(String key, int quantity);

Expand Down

0 comments on commit 7ac749d

Please sign in to comment.