Files
Todo-tool/src/app/core/service/task.service.ts
2021-10-21 14:01:11 +02:00

39 lines
948 B
TypeScript

import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { Task } from '../entity/task';
import { TaskPersistenceService } from './task-persistence.service';
@Injectable({
providedIn: 'root'
})
export class TaskService {
private _tasks: BehaviorSubject<Task[]> = new BehaviorSubject<Task[]>([]);
constructor(
private _taskPersistenceService: TaskPersistenceService
) {
const tasks = this._taskPersistenceService.getAll() || [];
this._tasks.next(tasks);
}
get tasks(): Observable<Task[]> {
return this._tasks.asObservable();
}
add(task: Task): void {
const tasks = this._tasks.value;
tasks.push(task);
this._tasks.next(tasks);
this._saveTasks();
}
private _saveTasks(): void {
this._taskPersistenceService.save(this._tasks.value);
}
refresh() {
const tasks = this._taskPersistenceService.getAll();
this._tasks.next(tasks);
}
}