70 lines
2.1 KiB
C#
70 lines
2.1 KiB
C#
using DaSaSo.Domain.Model;
|
|
using DaSaSo.Domain.Services;
|
|
using DaSaSo.EntityFramework.Services;
|
|
using DaSaSo.ViewModel.Commands;
|
|
using DaSaSo.ViewModel.Interface;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace DaSaSo.ViewModel
|
|
{
|
|
public class ProjectListViewModel : BaseViewModel
|
|
{
|
|
private ProjectDataService genericDataService;
|
|
|
|
private IActualProject actualProject;
|
|
private IRenavigator renavigator;
|
|
public ObservableCollection<Project> Projekte { get; }
|
|
private Project? _selectedProject;
|
|
|
|
public Project SelectedProject
|
|
{
|
|
get => _selectedProject;
|
|
set
|
|
{
|
|
if(_selectedProject != value)
|
|
{
|
|
_selectedProject = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public ICommand SelectCommand { get; set; }
|
|
public ProjectListViewModel(IDataService<Project> genericDataService, IActualProject actualProject, IRenavigator renavigator)
|
|
{
|
|
Projekte = new ObservableCollection<Project>();
|
|
if (genericDataService == null) throw new ArgumentNullException("genericDataService");
|
|
|
|
this.genericDataService = (genericDataService as ProjectDataService);
|
|
this.actualProject = actualProject;
|
|
this.renavigator = renavigator;
|
|
SelectCommand = new SelectProjectCommand(actualProject, this);
|
|
LoadProjecte();
|
|
}
|
|
|
|
public async void LoadProjecte()
|
|
{
|
|
|
|
var projekte = await genericDataService.GetAllByClient(actualProject.AktuellClient);
|
|
//
|
|
InitCollection(Projekte, projekte);
|
|
|
|
|
|
}
|
|
|
|
private void InitCollection(ObservableCollection<Project> target, IEnumerable<Project> source)
|
|
{
|
|
target.Clear();
|
|
foreach (var i in source)
|
|
target.Add(i);
|
|
}
|
|
}
|
|
}
|