Leistungsverzeichnis kann nun den Baustellen zugeordnet werden
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
using KanSan.Base;
|
||||
using KanSan.Base.Interfaces;
|
||||
using KanSan.Base.Interfaces.UI;
|
||||
using KanSan.Base.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace KanSan.ViewModel
|
||||
{
|
||||
public class LeistungsverzeichnisViewPosition : ILeistungsverzeichnisViewPosition
|
||||
{
|
||||
Guid guid;
|
||||
string positionsnummer;
|
||||
string beschreibung;
|
||||
string einheit;
|
||||
string tag;
|
||||
bool isActiveInBaustelle;
|
||||
|
||||
public Guid GuidNr { get => guid; set => guid = value; }
|
||||
public string Positionsnummer { get => positionsnummer; set => positionsnummer = value; }
|
||||
public string Beschreibung { get => beschreibung; set => beschreibung = value; }
|
||||
public string Einheit { get => einheit; set => einheit = value; }
|
||||
public string Tag { get => tag; set => tag = value; }
|
||||
public bool IsActiveInBaustelle { get => isActiveInBaustelle; set => isActiveInBaustelle = value; }
|
||||
}
|
||||
public class LeistungsverzeichnisBaustelleViewModel : PropertyChangedClass, INotifyPropertyChanged, ILeistungsverzeichnisBaustelleViewModel
|
||||
{
|
||||
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
||||
|
||||
Baustelle selectedBaustelle = null;
|
||||
List<Baustelle> baustellen = new List<Baustelle>();
|
||||
List<ILeistungsverzeichnisViewPosition> leistungsverzeichnisViewPositions = new List<ILeistungsverzeichnisViewPosition>();
|
||||
|
||||
public void Speichern()
|
||||
{
|
||||
unitOfWork.Commit();
|
||||
}
|
||||
|
||||
public List<Baustelle> Baustellen => baustellen;
|
||||
|
||||
public List<ILeistungsverzeichnisViewPosition> LeistungsverzeichnisPositionen
|
||||
{
|
||||
get => leistungsverzeichnisViewPositions;
|
||||
set
|
||||
{
|
||||
leistungsverzeichnisViewPositions = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public void ToggleActive(LeistungsverzeichnisViewPosition leistungsverzeichnisViewPosition)
|
||||
{
|
||||
leistungsverzeichnisViewPosition.IsActiveInBaustelle = !leistungsverzeichnisViewPosition.IsActiveInBaustelle;
|
||||
LeistungsverzeichnisPosition pos = unitOfWork.LeistungsverzeichnisRepository.Get(x => x.GuidNr.Equals(leistungsverzeichnisViewPosition.GuidNr)).ToList().First();
|
||||
|
||||
BaustelleLeistungsverzeichnisReferenz bauRef = new BaustelleLeistungsverzeichnisReferenz()
|
||||
{
|
||||
GuidNr = Guid.NewGuid(),
|
||||
Baustelle = selectedBaustelle,
|
||||
LVPosition = pos
|
||||
};
|
||||
|
||||
if (leistungsverzeichnisViewPosition.IsActiveInBaustelle)
|
||||
{
|
||||
|
||||
_bs.Add(bauRef);
|
||||
unitOfWork.LeistungsverzeichnisReferenz.Update(bauRef);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
BaustelleLeistungsverzeichnisReferenz referenz = _bs.FindLast(x => x.LVPosition.GuidNr.Equals(leistungsverzeichnisViewPosition.GuidNr) && x.Baustelle.Equals(selectedBaustelle));
|
||||
Trace.WriteLine(referenz);
|
||||
unitOfWork.LeistungsverzeichnisReferenz.Delete(referenz);
|
||||
|
||||
}
|
||||
buildLeistungsverzeichnisList();
|
||||
}
|
||||
|
||||
public Baustelle SelectedBaustelle
|
||||
{
|
||||
get => selectedBaustelle;
|
||||
set
|
||||
{
|
||||
if (selectedBaustelle == value) return;
|
||||
selectedBaustelle = value;
|
||||
buildLeistungsverzeichnisList();
|
||||
}
|
||||
}
|
||||
|
||||
List<BaustelleLeistungsverzeichnisReferenz> _bs = null;
|
||||
private bool IsActive(LeistungsverzeichnisPosition ps)
|
||||
{
|
||||
if(_bs == null)
|
||||
{
|
||||
if (selectedBaustelle == null) return false;
|
||||
//_bs = unitOfWork.LeistungsverzeichnisReferenz.Get(x => x.Baustelle.Equals(selectedBaustelle)).ToList();
|
||||
}
|
||||
return false;
|
||||
//List<BaustelleLeistungsverzeichnisReferenz> d = _bs.FindAll(x => x.LVPosition.GuidNr.Equals(ps.GuidNr));
|
||||
//return (d.Count > 0);
|
||||
}
|
||||
|
||||
private void buildLeistungsverzeichnisList()
|
||||
{
|
||||
List<ILeistungsverzeichnisViewPosition> poses = new List<ILeistungsverzeichnisViewPosition>();
|
||||
List<LeistungsverzeichnisPosition> allePositionen = unitOfWork.LeistungsverzeichnisRepository.Get().ToList();
|
||||
foreach (LeistungsverzeichnisPosition pos in allePositionen)
|
||||
{
|
||||
poses.Add(new LeistungsverzeichnisViewPosition()
|
||||
{
|
||||
GuidNr = pos.GuidNr,
|
||||
Beschreibung = pos.Beschreibung,
|
||||
IsActiveInBaustelle = IsActive(pos),
|
||||
Einheit = pos.Einheit,
|
||||
Positionsnummer = pos.Positionsnummer,
|
||||
Tag = pos.Tag
|
||||
});
|
||||
}
|
||||
LeistungsverzeichnisPositionen = poses;
|
||||
}
|
||||
|
||||
public LeistungsverzeichnisBaustelleViewModel()
|
||||
{
|
||||
baustellen = unitOfWork.BaustelleRepository.Get().ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user