Imprägnierungedit weitergeschrieben

This commit is contained in:
HuskyTeufel
2021-10-28 15:53:35 +02:00
parent e2e7fbc9c4
commit b4a896f5bf
9 changed files with 108 additions and 125 deletions

View File

@@ -14,20 +14,24 @@ namespace DaSaSo.ViewModel.Commands
private IDataService<Impregnation> _impregnationService;
private ImpregnierungListViewModel _impregnierungListViewModel;
private IRenavigator _editRenavigator;
private IActualProject _actualProject;
public EditImpregnationCommand(
IDataService<Impregnation> impregnationService,
ImpregnierungListViewModel impregnierungListViewModel,
IActualProject actualProject,
IRenavigator editRenavigator)
{
_impregnationService = impregnationService;
_impregnierungListViewModel = impregnierungListViewModel;
_actualProject = actualProject;
_editRenavigator = editRenavigator;
}
public override Task ExecuteAsync(object? parameter)
public override async Task ExecuteAsync(object? parameter)
{
throw new NotImplementedException();
_actualProject.SetImpregnation(_impregnierungListViewModel.SelectedImpregnation);
_editRenavigator.Renavigate();
}
}
}

View File

@@ -1,4 +1,6 @@
using System;
using DaSaSo.Domain.Model;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -8,5 +10,52 @@ namespace DaSaSo.ViewModel
{
public class ImpregnierungEditViewModel : BaseViewModel
{
private Impregnation _model;
public int DN
{
get => _model.DN;
set
{
_model.DN = value;
}
}
public string LinerCharge
{
get => _model.LinerNumber;
set
{
_model.LinerNumber = value;
}
}
public decimal Wandstärke
{
get => _model.WallThickness;
set
{
_model.WallThickness = value;
}
}
public decimal LinerLänge
{
get => _model.Linerlength;
set
{
_model.Linerlength = value;
}
}
public string Imprägniernummer
{
get => _model.Number;
set
{
_model.Number = value;
}
}
public ImpregnierungEditViewModel(IActualProject actualProject)
{
_model = actualProject.AktuellImpregnation;
}
}
}

View File

@@ -46,7 +46,7 @@ namespace DaSaSo.ViewModel
}
}
public ImpregnierungListViewModel(IDataService<Impregnation> impregnationService, IRenavigator editRenavigator)
public ImpregnierungListViewModel(IDataService<Impregnation> impregnationService,IActualProject actualProject, IRenavigator editRenavigator)
{
IsLoading = true;
Impregnations = new ObservableCollection<Impregnation>();
@@ -63,7 +63,7 @@ namespace DaSaSo.ViewModel
});
//AddImpregnationCommand = //new AddImpregnationCommand(_impregnationService, editRenavigator);
EditImpregnationCommand = new EditImpregnationCommand(_impregnationService, this, editRenavigator);
EditImpregnationCommand = new EditImpregnationCommand(_impregnationService, this,actualProject, editRenavigator);
LoadImpregnations();
}

View File

@@ -19,12 +19,14 @@ namespace DaSaSo.ViewModel.Interface
Buildingsite AktuellBaustelle { get; }
SewerObject AktuellSewerObject { get; }
SewerDamage AktuellSewerDamage { get; }
Impregnation AktuellImpregnation { 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 SetImpregnation(Impregnation impregnation, bool notification = true);
void ResetProject();
void ResetBuildingSite();
}

View File

@@ -14,8 +14,8 @@ namespace DaSaSo.ViewModel.State.ActualState
public Buildingsite? AktuellBaustelle { get; private set; }
public Project? AktuellProjekt { get; private set; }
public SewerObject? AktuellSewerObject { get; private set; }
public SewerDamage? AktuellSewerDamage { get; private set; }
public Impregnation? AktuellImpregnation { get; private set; }
#region events
@@ -57,7 +57,6 @@ namespace DaSaSo.ViewModel.State.ActualState
public void SetProject(Project project, bool notification = true)
{
AktuellProjekt = project;
if(notification)
OnProjectChanged();
@@ -76,7 +75,12 @@ namespace DaSaSo.ViewModel.State.ActualState
OnSewerObjectChanged();
}
public void SetImpregnation(Impregnation impregnation, bool notification = true)
{
AktuellImpregnation = impregnation;
if (notification)
return; // TODO notification wird aktuell nicht benötigt
}
public void ResetProject()
{
SetProject(null);

View File

@@ -41,119 +41,7 @@ namespace DaSaSo.Wpf
.AddDBContext();
}
/* return Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(c=>
{
c.AddJsonFile("appsettings.json");
c.AddEnvironmentVariables();
})
.ConfigureServices((context, services) =>
{
string connectionString = context.Configuration.GetConnectionString("default");
services.AddDbContext<DaSaSoDbContext>(o => o.UseSqlServer(connectionString));
services.AddSingleton<DaSaSoDbContextFactory>(new DaSaSoDbContextFactory(connectionString));
services.AddSingleton<IDataService<Client>, ClientDataService>();
services.AddSingleton<IDataService<Project>, ProjectDataService>();
services.AddSingleton<IDataService<Buildingsite>, BuildingsiteDataService>();
services.AddSingleton<IDataService<SewerObject>, SewerObjectDataService>();
services.AddSingleton<ClientListViewModel>();
services.AddSingleton<IProjectService, ProjectService>();
services.AddSingleton<IBuildingsiteService, BuildingsiteService>();
services.AddSingleton<ISewerObjectService, SewerObjectService>();
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
services.AddSingleton<IViewModelSewerMainFactory, SewerWindowViewModelFactory>();
services.AddSingleton<CreateViewModel<ClientEditViewModel>>(services =>
{
return () => new ClientEditViewModel(
services.GetRequiredService<IDataService<Client>>(),
services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator(
services.GetRequiredService<IMainWindowNavigator>()
));
});
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
{
return () => new HomeViewModel();
});
services.AddSingleton<CreateViewModel<SewerStammdatenViewModel>>(services =>
{
return () => new SewerStammdatenViewModel(
services.GetRequiredService<IActualProject>()
);
});
services.AddSingleton<CreateViewModel<SewerDamageListViewModel>>(services =>
{
return () => new SewerDamageListViewModel();
});
services.AddSingleton<CreateViewModel<ClientListViewModel>>(services =>
{
return () => new ClientListViewModel(
services.GetRequiredService<IDataService<Client>>(),
services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator(
services.GetRequiredService<IMainWindowNavigator>()
));
});
services.AddSingleton<CreateViewModel<SewerMainListViewModel>>(services =>
{
return () => new SewerMainListViewModel(
services.GetRequiredService<IDataService<SewerObject>>(),
services.GetRequiredService<ISewerMainNavigator>(),
services.GetRequiredService<IActualProject>(),
services.GetRequiredService<IViewModelSewerMainFactory>(),
new ViewModelDelegateRenavigator(
services.GetRequiredService<IMainWindowNavigator>()
),
services.GetRequiredService<ISewerObjectService>()
);
});
services.AddSingleton<CreateViewModel<ProjectListViewModel>>(services =>
{
return () => new ProjectListViewModel(
services.GetRequiredService<IDataService<Project>>(),
services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator(
services.GetRequiredService<IMainWindowNavigator>()),
services.GetRequiredService<IProjectService>()
);
});
services.AddSingleton<CreateViewModel<BuildingsiteListViewModel>>(services =>
{
return () => new BuildingsiteListViewModel(
services.GetRequiredService<IDataService<Buildingsite>>(),
services.GetRequiredService<IActualProject>(),
new ViewModelDelegateRenavigator(
services.GetRequiredService<IMainWindowNavigator>()),
services.GetRequiredService<IBuildingsiteService>()
);
});
services.AddSingleton<CreateViewModel<SewerObjectListViewModel>>(services =>
{
return () => new SewerObjectListViewModel(
services.GetRequiredService<IDataService<SewerObject>>(),
services.GetRequiredService<IActualProject>(),
services.GetRequiredService<ISewerObjectService>()
);
});
//services.AddSingleton<INavigator, Navigator>();
services.AddScoped<IActualProject, ActualProject>();
services.AddScoped<IMainWindowNavigator, MainWindowNavigator>();
services.AddScoped<ISewerMainNavigator, SewerMainNavigator>();
services.AddScoped<MainWindowViewModel>();
});
}
*/
protected override void OnStartup(StartupEventArgs e)
{
Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
@@ -177,7 +65,7 @@ namespace DaSaSo.Wpf
protected override async void OnExit(ExitEventArgs e)
{
_host.StopAsync();
await _host.StopAsync();
_host.Dispose();
base.OnExit(e);
}

View File

@@ -73,12 +73,15 @@ namespace DaSaSo.Wpf.HostBuilders
{
return () => new ImpregnierungListViewModel(
services.GetRequiredService<IDataService<Impregnation>>(),
services.GetRequiredService<IActualProject>(),
services.GetRequiredService<ViewModelDelegateRenavigator<ImpregnierungEditViewModel>>()
);
});
services.AddTransient<CreateViewModel<ImpregnierungEditViewModel>>(services =>
{
return () => new ImpregnierungEditViewModel();
return () => new ImpregnierungEditViewModel(
services.GetRequiredService<IActualProject>()
);
});
services.AddTransient<CreateViewModel<SewerStammdatenViewModel>>(services =>

View File

@@ -3,10 +3,40 @@
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.Impregnation"
xmlns:local="clr-namespace:DaSaSo.Wpf.View.Impregnation" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:ImpregnierungEditViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Imprägniernummer" />
<Label Grid.Column="0" Grid.Row="1" Content="Linercharge" />
<Label Grid.Column="0" Grid.Row="2" Content="Liner Länge" />
<Label Grid.Column="0" Grid.Row="3" Content="Durchmesser" />
<Label Grid.Column="0" Grid.Row="4" Content="Wandstärke" />
<Label Grid.Column="0" Grid.Row="5" Content="Datum" />
<Label Grid.Column="0" Grid.Row="6" Content="Vorhanden" />
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Imprägniernummer}" />
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding LinerCharge}" />
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding LinerLänge}" />
<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding DN}" />
<TextBox Grid.Column="1" Grid.Row="4" Text="{Binding Wandstärke}" />
<TextBox Grid.Column="1" Grid.Row="5" Text="" />
<CheckBox Grid.Column="1" Grid.Row="6" Content="Ja" Style="{StaticResource checkBoxCircleSmall}"/>
<Button Grid.Row="7" Grid.ColumnSpan="2" Content="Speichern" />
</Grid>
</UserControl>

View File

@@ -45,6 +45,9 @@
<DataTemplate DataType="{x:Type viewmodel:ImpregnierungListViewModel}">
<ImpregnationViews:ImpregnationListView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:ImpregnierungEditViewModel}">
<ImpregnationViews:ImpregnationEditView />
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>