Files
DaSaSo/DaSaSo.ViewModel/SewerMainListViewModel.cs
HuskyTeufel 8cf0373a95 Codecleanup
2021-09-28 18:25:29 +02:00

70 lines
2.8 KiB
C#

using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.SewerObjectService;
using DaSaSo.Domain.Services.SewerPointServices;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.ViewModel
{
public class SewerMainListViewModel : BaseViewModel
{
private ISewerMainNavigator _navigator { get; set; }
private readonly SewerObjectDataService _dataservice;
private readonly ISewerObjectService _sewerObjectService;
private readonly IRenavigator _renavigator;
private IActualProject _actualProject { get; set; }
public ICommand UpdateCurrentSewerViewModelCommand { get; }
public ICommand CloseCommand { get; set; }
public BaseViewModel CurrentSewerViewModel => _navigator.CurrentViewModel;
public bool IsLoading
{
get => _isLoading;
set
{
if (_isLoading != value)
{
_isLoading = value;
OnPropertyChanged();
}
}
}
public string Strasse { get => _actualProject.AktuellSewerObject.StreetName; }
public string AktualObject { get => _actualProject.AktuellSewerObject.ObjektName; }
bool _isLoading = true;
public bool CanSaveSewer => !string.IsNullOrEmpty(_actualProject.AktuellSewerObject.StreetName);
public SewerMainListViewModel(IDataService<SewerObject> dataService, ISewerMainNavigator navigator,IActualProject actualProject, IViewModelSewerMainFactory viewModelFactory, IRenavigator renavigator, ISewerObjectService sewerObjectService, ISewerpointService sewerpointService)
{
_navigator = navigator;
_actualProject = actualProject;
_dataservice = (SewerObjectDataService)dataService;
_renavigator = renavigator;
_sewerObjectService = sewerObjectService;
CloseCommand = new SaveSewerCommand(_dataservice,_actualProject,_sewerObjectService,_renavigator,_navigator); //RelayCommand(SaveSewer);
LoadModel();
UpdateCurrentSewerViewModelCommand = new UpdateCurrentSewerViewModelCommand(_navigator, viewModelFactory);
_navigator.StateChanged += () => OnPropertyChanged(nameof(CurrentSewerViewModel));
}
private async void LoadModel()
{
IsLoading = true;
SewerObject sewer = await _dataservice.Get(_actualProject.AktuellSewerObject.Id);
_actualProject.SetSewerObject(sewer,false);
IsLoading = false;
}
}
}