Read decision expresion in the fetch scene method

This commit is contained in:
Abdullah Alassaf
2024-07-28 12:04:22 +03:00
parent eb8ad90dcb
commit cd704dcc60

View File

@ -48,8 +48,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
String conditionRule = 'or'; String conditionRule = 'or';
EffectiveTime? effectiveTime; EffectiveTime? effectiveTime;
FutureOr<void> _onAddSceneTask( FutureOr<void> _onAddSceneTask(AddTaskEvent event, Emitter<CreateSceneState> emit) {
AddTaskEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
if (event.isAutomation == true) { if (event.isAutomation == true) {
final copyList = List<SceneStaticFunction>.from(automationTempTasksList); final copyList = List<SceneStaticFunction>.from(automationTempTasksList);
@ -84,8 +83,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
} }
void addToTempTaskList( void addToTempTaskList(TempHoldSceneTasksEvent event, Emitter<CreateSceneState> emit) {
TempHoldSceneTasksEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
bool updated = false; bool updated = false;
for (var element in tempTasksList) { for (var element in tempTasksList) {
@ -139,8 +137,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} }
void addToTempAutomationTaskList( void addToTempAutomationTaskList(TempHoldSceneTasksEvent event, Emitter<CreateSceneState> emit) {
TempHoldSceneTasksEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
bool updated = false; bool updated = false;
for (var element in automationTempTasksList) { for (var element in automationTempTasksList) {
@ -162,10 +159,8 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
], ],
comparator: automationComparatorValues[element.code], comparator: automationComparatorValues[element.code],
); );
automationTempTasksList[automationTempTasksList.indexOf(element)] = automationTempTasksList[automationTempTasksList.indexOf(element)] = updatedElement;
updatedElement; automationSelectedValues[updatedElement.code] = event.deviceControlModel.value;
automationSelectedValues[updatedElement.code] =
event.deviceControlModel.value;
updated = true; updated = true;
break; break;
} }
@ -185,12 +180,10 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
icon: '', icon: '',
), ),
], ],
comparator: comparator: automationComparatorValues[event.deviceControlModel.code] ?? '==',
automationComparatorValues[event.deviceControlModel.code] ?? '==',
); );
automationTempTasksList.add(newElement); automationTempTasksList.add(newElement);
automationSelectedValues[newElement.code] = automationSelectedValues[newElement.code] = event.deviceControlModel.value;
event.deviceControlModel.value;
} }
emit(AddSceneTask( emit(AddSceneTask(
tasksList: tasksList, tasksList: tasksList,
@ -199,8 +192,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} }
FutureOr<void> _selectedValue( FutureOr<void> _selectedValue(SelectedValueEvent event, Emitter<CreateSceneState> emit) {
SelectedValueEvent event, Emitter<CreateSceneState> emit) {
if (event.isAutomation == true) { if (event.isAutomation == true) {
automationSelectedValues[event.code] = event.value; automationSelectedValues[event.code] = event.value;
automationComparatorValues[event.code] = event.comparator ?? '=='; automationComparatorValues[event.code] = event.comparator ?? '==';
@ -228,8 +220,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} }
FutureOr<void> _removeTaskById( FutureOr<void> _removeTaskById(RemoveTaskByIdEvent event, Emitter<CreateSceneState> emit) {
RemoveTaskByIdEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
if (event.isAutomation == true) { if (event.isAutomation == true) {
for (var element in automationTasksList) { for (var element in automationTasksList) {
@ -302,8 +293,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
: await SceneApi.createScene(event.createSceneModel!); : await SceneApi.createScene(event.createSceneModel!);
} else if (event.createAutomationModel != null) { } else if (event.createAutomationModel != null) {
response = event.updateScene response = event.updateScene
? await SceneApi.updateAutomation( ? await SceneApi.updateAutomation(event.createAutomationModel!, event.sceneId)
event.createAutomationModel!, event.sceneId)
: await SceneApi.createAutomation(event.createAutomationModel!); : await SceneApi.createAutomation(event.createAutomationModel!);
} }
@ -332,8 +322,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
} }
FutureOr<void> _clearTaskList( FutureOr<void> _clearTaskList(ClearTaskListEvent event, Emitter<CreateSceneState> emit) {
ClearTaskListEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
automationTasksList.clear(); automationTasksList.clear();
tasksList.clear(); tasksList.clear();
@ -354,14 +343,12 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
: await SceneApi.getSceneDetails(event.sceneId); : await SceneApi.getSceneDetails(event.sceneId);
if (response.id.isNotEmpty) { if (response.id.isNotEmpty) {
if (event.isAutomation) { if (event.isAutomation) {
automationTasksList = List<SceneStaticFunction>.from( automationTasksList = List<SceneStaticFunction>.from(getTaskListFunctionsFromApi(
getTaskListFunctionsFromApi( actions: [], isAutomation: true, conditions: response.conditions));
actions: [],
isAutomation: true,
conditions: response.conditions));
tasksList = List<SceneStaticFunction>.from( tasksList = List<SceneStaticFunction>.from(
getTaskListFunctionsFromApi( getTaskListFunctionsFromApi(actions: response.actions, isAutomation: false));
actions: response.actions, isAutomation: false));
conditionRule = response.decisionExpr ?? conditionRule;
emit(AddSceneTask( emit(AddSceneTask(
automationTasksList: automationTasksList, automationTasksList: automationTasksList,
@ -370,8 +357,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} else { } else {
tasksList = List<SceneStaticFunction>.from( tasksList = List<SceneStaticFunction>.from(
getTaskListFunctionsFromApi( getTaskListFunctionsFromApi(actions: response.actions, isAutomation: false));
actions: response.actions, isAutomation: false));
emit(AddSceneTask( emit(AddSceneTask(
tasksList: tasksList, tasksList: tasksList,
condition: conditionRule, condition: conditionRule,
@ -385,8 +371,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
} }
FutureOr<void> _clearTempTaskList( FutureOr<void> _clearTempTaskList(ClearTempTaskListEvent event, Emitter<CreateSceneState> emit) {
ClearTempTaskListEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
if (event.isAutomation == true) { if (event.isAutomation == true) {
automationTempTasksList.clear(); automationTempTasksList.clear();
@ -435,17 +420,13 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
} }
FutureOr<void> _deleteScene( FutureOr<void> _deleteScene(DeleteSceneEvent event, Emitter<CreateSceneState> emit) async {
DeleteSceneEvent event, Emitter<CreateSceneState> emit) async {
emit(DeleteSceneLoading()); emit(DeleteSceneLoading());
try { try {
final response = final response = sceneType.name == CreateSceneEnum.deviceStatusChanges.name
sceneType.name == CreateSceneEnum.deviceStatusChanges.name ? await SceneApi.deleteAutomation(automationId: event.sceneId, unitUuid: event.unitUuid)
? await SceneApi.deleteAutomation( : await SceneApi.deleteScene(sceneId: event.sceneId, unitUuid: event.unitUuid);
automationId: event.sceneId, unitUuid: event.unitUuid)
: await SceneApi.deleteScene(
sceneId: event.sceneId, unitUuid: event.unitUuid);
if (response == true) { if (response == true) {
emit(const DeleteSceneSuccess(true)); emit(const DeleteSceneSuccess(true));
} else { } else {
@ -456,8 +437,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
} }
FutureOr<void> _updateTaskValue( FutureOr<void> _updateTaskValue(UpdateTaskEvent event, Emitter<CreateSceneState> emit) {
UpdateTaskEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading()); emit(CreateSceneLoading());
if (event.isAutomation == true) { if (event.isAutomation == true) {
for (var i = 0; i < automationTasksList.length; i++) { for (var i = 0; i < automationTasksList.length; i++) {
@ -485,8 +465,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} }
FutureOr<void> _selectConditionRule( FutureOr<void> _selectConditionRule(SelectConditionEvent event, Emitter<CreateSceneState> emit) {
SelectConditionEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneInitial()); emit(CreateSceneInitial());
if (event.condition.contains('any')) { if (event.condition.contains('any')) {
conditionRule = 'or'; conditionRule = 'or';
@ -501,8 +480,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
)); ));
} }
FutureOr<void> _sceneTypeEvent( FutureOr<void> _sceneTypeEvent(SceneTypeEvent event, Emitter<CreateSceneState> emit) {
SceneTypeEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneInitial()); emit(CreateSceneInitial());
if (event.type == CreateSceneEnum.tabToRun) { if (event.type == CreateSceneEnum.tabToRun) {