Sewerdamages angefangen
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
using DaSaSo.ConsoleApp;
|
||||
using DaSaSo.Domain.Model;
|
||||
using DaSaSo.Domain.Services;
|
||||
using DaSaSo.EntityFramework;
|
||||
using DaSaSo.EntityFramework.Services;
|
||||
using System.Diagnostics;
|
||||
|
||||
IDataService<Client> clientService = new GenericDataService<Client>(new DaSaSoDbContextFactory(""));
|
||||
clientService.Create(new Client()
|
||||
{
|
||||
Firstname = "Cynthia",
|
||||
LastName = "Schreuder",
|
||||
Country = "Tarmstedt",
|
||||
Postcode = "25445",
|
||||
});
|
||||
|
||||
testclass test = new testclass();
|
||||
test.data = efields.CATRA | efields.PRO;
|
||||
|
||||
var s = test.data.HasFlag(efields.CATRA);
|
||||
|
||||
Debugger.Break();
|
||||
|
||||
38
DaSaSo.ConsoleApp/testclass.cs
Normal file
38
DaSaSo.ConsoleApp/testclass.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ConsoleApp
|
||||
{
|
||||
class testclass
|
||||
{
|
||||
public efields data;
|
||||
}
|
||||
|
||||
[Flags]
|
||||
enum efields : int
|
||||
{
|
||||
PRO = 1,
|
||||
CONTRA = 2,
|
||||
DESPRED = 4,
|
||||
CATRA = 8
|
||||
};
|
||||
|
||||
static class EnumerationExtensions
|
||||
{
|
||||
public static bool Has<T>(this System.Enum type, T value)
|
||||
{
|
||||
try
|
||||
{
|
||||
return (((int)(object)type & (int)(object)value) == (int)(object)value);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
namespace DaSaSo.Domain.Model
|
||||
{
|
||||
[Flags]
|
||||
public enum EDamageType
|
||||
{
|
||||
Riss = 1,
|
||||
@@ -9,8 +10,12 @@
|
||||
Inkrustation = 16,
|
||||
Ablagerung = 32,
|
||||
EinrageneStutzen = 64,
|
||||
Infiltration = 128
|
||||
Infiltration = 128,
|
||||
Static = Riss | Bruch | Scherbe,
|
||||
Betrieb = Wurzel | Inkrustation | Ablagerung,
|
||||
Other = EinrageneStutzen | Infiltration
|
||||
}
|
||||
[Flags]
|
||||
public enum EPreparationType
|
||||
{
|
||||
CleanedHD = 1,
|
||||
|
||||
@@ -13,15 +13,18 @@ namespace DaSaSo.ViewModel.Interface
|
||||
event EventHandler? ProjectChanged;
|
||||
event EventHandler? BuildingSiteChanged;
|
||||
event EventHandler? SewerObjectChanged;
|
||||
event EventHandler? SewerDamageChanged;
|
||||
Client AktuellClient { get; }
|
||||
Project AktuellProjekt { get; }
|
||||
Buildingsite AktuellBaustelle { get; }
|
||||
SewerObject AktuellSewerObject { get; }
|
||||
SewerDamage AktuellSewerDamage { get; }
|
||||
|
||||
void SetClient(Client client, bool notification = true);
|
||||
void SetProject(Project project, bool notification = true);
|
||||
void SetBuildingSite(Buildingsite buildingsite);
|
||||
void SetSewerObject(SewerObject sewerObject, bool notification = true);
|
||||
void SetSewerDamage(SewerDamage sewerDamage, bool notification = true);
|
||||
void ResetProject();
|
||||
void ResetBuildingSite();
|
||||
}
|
||||
|
||||
@@ -13,6 +13,17 @@ namespace DaSaSo.ViewModel
|
||||
{
|
||||
private readonly IActualProject _actualProject;
|
||||
private readonly IDataService<SewerObject> _dataService;
|
||||
private SewerDamage _selectedDamage;
|
||||
public SewerDamage SelectedDamage
|
||||
{
|
||||
get => _selectedDamage;
|
||||
set
|
||||
{
|
||||
_selectedDamage = value;
|
||||
_actualProject.SetSewerDamage(_selectedDamage);
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
SewerObject _model;
|
||||
public List<SewerDamage> Damages { get => _model.SewerDamages.ToList(); }
|
||||
@@ -22,6 +33,7 @@ namespace DaSaSo.ViewModel
|
||||
_actualProject = actualProject;
|
||||
_dataService = dataService;
|
||||
_model = _actualProject.AktuellSewerObject;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,7 +38,16 @@ namespace DaSaSo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string _schaden = "llooo";
|
||||
public string Schaden
|
||||
{
|
||||
get => _schaden;
|
||||
set
|
||||
{
|
||||
_schaden = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
public string Strasse { get => _actualProject.AktuellSewerObject.StreetName; }
|
||||
public string AktualObject { get => _actualProject.AktuellSewerObject.ObjektName; }
|
||||
|
||||
@@ -56,6 +65,13 @@ namespace DaSaSo.ViewModel
|
||||
LoadModel();
|
||||
UpdateCurrentSewerViewModelCommand = new UpdateCurrentSewerViewModelCommand(_navigator, viewModelFactory);
|
||||
_navigator.StateChanged += () => OnPropertyChanged(nameof(CurrentSewerViewModel));
|
||||
_actualProject.SewerDamageChanged += _actualProject_SewerDamageChanged;
|
||||
}
|
||||
|
||||
private void _actualProject_SewerDamageChanged(object? sender, EventArgs e)
|
||||
{
|
||||
Schaden = _actualProject.AktuellSewerDamage.Distance.ToString();
|
||||
OnPropertyChanged(nameof(Schaden));
|
||||
}
|
||||
|
||||
private async void LoadModel()
|
||||
|
||||
@@ -15,12 +15,15 @@ namespace DaSaSo.ViewModel.State.ActualState
|
||||
public Project? AktuellProjekt { get; private set; }
|
||||
public SewerObject? AktuellSewerObject { get; private set; }
|
||||
|
||||
public SewerDamage? AktuellSewerDamage { get; private set; }
|
||||
|
||||
|
||||
#region events
|
||||
public event EventHandler? ClientChanged;
|
||||
public event EventHandler? ProjectChanged;
|
||||
public event EventHandler? BuildingSiteChanged;
|
||||
public event EventHandler? SewerObjectChanged;
|
||||
public event EventHandler? SewerDamageChanged;
|
||||
|
||||
protected void OnClientChanged()
|
||||
{
|
||||
@@ -38,6 +41,10 @@ namespace DaSaSo.ViewModel.State.ActualState
|
||||
{
|
||||
SewerObjectChanged?.Invoke(this, new EventArgs());
|
||||
}
|
||||
protected void OnSewerDamageChanged()
|
||||
{
|
||||
SewerDamageChanged?.Invoke(this, new EventArgs());
|
||||
}
|
||||
#endregion
|
||||
public void SetClient(Client client, bool notification = true)
|
||||
{
|
||||
@@ -77,5 +84,12 @@ namespace DaSaSo.ViewModel.State.ActualState
|
||||
{
|
||||
SetBuildingSite(null);
|
||||
}
|
||||
|
||||
public void SetSewerDamage(SewerDamage sewerDamage, bool notification = true)
|
||||
{
|
||||
AktuellSewerDamage = sewerDamage;
|
||||
if (notification)
|
||||
OnSewerDamageChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
<RadioButton Content="Stammdaten" Style="{StaticResource ToggleButtonList}" Command="{Binding UpdateCurrentSewerViewModelCommand}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerStammdaten}" Margin="20" />
|
||||
<RadioButton Content="Schäden" Style="{StaticResource ToggleButtonList}" Command="{Binding UpdateCurrentSewerViewModelCommand}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerDamageList}" Margin="20" />
|
||||
<RadioButton Content="Schließen" Style="{StaticResource ToggleButtonList}" Command="{Binding CloseCommand}" Margin="20" />
|
||||
<RadioButton Content="{Binding Schaden}" Style="{StaticResource ToggleButtonList}" />
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
25
DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs
Normal file
25
DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DaSaSo.Wpf.Converters
|
||||
{
|
||||
class EqualDamageTypeToBooleanConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return (((int)value & (int)parameter) == (int)value);
|
||||
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DaSaSo.Wpf.Converters
|
||||
{
|
||||
class EqualPreperationTypeToBooleanConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
EPreparationType damagevalue = (EPreparationType)value;
|
||||
EPreparationType damageParameter = (EPreparationType)parameter;
|
||||
return damagevalue.HasFlag(damageParameter);
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,8 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
services.AddTransient<MainWindowViewModel>();
|
||||
services.AddSingleton<ClientListViewModel>();
|
||||
|
||||
services.AddTransient<SewerMainListViewModel>();
|
||||
|
||||
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
||||
{
|
||||
return () => new HomeViewModel();
|
||||
@@ -57,7 +59,10 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
{
|
||||
return () => new SewerDamageListViewModel(
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
services.GetRequiredService<IDataService<SewerObject>>());
|
||||
services.GetRequiredService<IDataService<SewerObject>>()//,
|
||||
//services.GetRequiredService<SewerMainListViewModel>()
|
||||
|
||||
);
|
||||
});
|
||||
|
||||
services.AddSingleton<CreateViewModel<ClientListViewModel>>(services =>
|
||||
|
||||
25
DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs
Normal file
25
DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.Wpf.Sampledata
|
||||
{
|
||||
public class SewerDamageListSampleData
|
||||
{
|
||||
public ObservableCollection<SewerDamage> Damages { get; private set; } = new ObservableCollection<SewerDamage>();
|
||||
public SewerDamageListSampleData()
|
||||
{
|
||||
Damages.Add(new SewerDamage()
|
||||
{
|
||||
DamageType = EDamageType.Bruch | EDamageType.EinrageneStutzen,
|
||||
PreparationType = EPreparationType.CleanedHD | EPreparationType.CleanedRoborter,
|
||||
Distance = 12.5m
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,34 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DaSaSo.Wpf.View.SewerObject" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:SewerDamageListViewModel}"
|
||||
xmlns:sd="clr-namespace:DaSaSo.Wpf.Sampledata"
|
||||
xmlns:damagetype ="clr-namespace:DaSaSo.Domain.Model;assembly=DaSaSo.Domain"
|
||||
xmlns:local="clr-namespace:DaSaSo.Wpf.View.SewerObject" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel"
|
||||
xmlns:converters="clr-namespace:DaSaSo.Wpf.Converters"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
d:DesignHeight="450" d:DesignWidth="1020">
|
||||
<UserControl.Resources>
|
||||
<converters:EqualDamageTypeToBooleanConverter x:Key="EqualDamageTypeToBooleanConverter" />
|
||||
<converters:EqualPreperationTypeToBooleanConverter x:Key="EqualPreperationTypeToBooleanConverter" />
|
||||
</UserControl.Resources>
|
||||
<d:UserControl.DataContext>
|
||||
<sd:SewerDamageListSampleData />
|
||||
</d:UserControl.DataContext>
|
||||
<Grid>
|
||||
<DataGrid ItemsSource="{Binding Damages}" />
|
||||
<DataGrid ItemsSource="{Binding Damages}" AutoGenerateColumns="False" IsReadOnly="True" SelectedItem="{Binding SelectedDamage}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Entfernung" Binding="{Binding Distance}" />
|
||||
<DataGridCheckBoxColumn Header="Statik (Riss / Bruch / Scherbe)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Static}}" />
|
||||
<DataGridCheckBoxColumn Header="Betrieb (Wurzeln / Inkrustation / Ablagerungen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Betrieb}}" />
|
||||
<DataGridCheckBoxColumn Header="Sonstiges (Infiltration / Einragene Stutzen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Other}}" />
|
||||
|
||||
|
||||
<DataGridCheckBoxColumn Header="HD Reinigung" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedHD}}" />
|
||||
<DataGridCheckBoxColumn Header="Mechanisch gereinigt" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedMechanisch}}" />
|
||||
<DataGridCheckBoxColumn Header="Roboter" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedRoborter}}" />
|
||||
<DataGridCheckBoxColumn Header="Fäkalienfrei" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.FaekalienFrei}}" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"databaseToUse": "sqlite",
|
||||
"databaseToUse": "default",
|
||||
"default": "Host = localhost; Database = dasaso; Username = kansan; Password = kansan",
|
||||
"sqlite": "Data Source=database.db"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user