instruction_app/lib/providers/organization_ptovider.dart

45 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:instruction_app/data/interface/IRepository.dart';
import 'package:instruction_app/models/organization.dart';
class OrganizationProvider extends ChangeNotifier {
final Repository<Organization> _repository;
OrganizationProvider(this._repository);
List<Organization> _organizations = [];
List<Organization> get organizations => _organizations;
bool _isLoading = false;
bool get isLoading => _isLoading;
Future<void> loadOrganizations() async {
setLoading(false);
_organizations = await _repository.load();
setLoading(true);
}
Future<void> addOrganization(String title) async {
final newOrganization = Organization(
title: title
);
await _repository.add(newOrganization);
await loadOrganizations();
}
Future<void> updateOrganization(Organization organization) async {
await _repository.update(organization);
await loadOrganizations();
}
Future<void> deleteOrganization(String id) async {
await _repository.delete(id);
_organizations.removeWhere((item) => item.id == id);
notifyListeners();
}
void setLoading(bool value){
_isLoading = value;
notifyListeners();
}
}