Zwischenstand 2022.0914 10.57

This commit is contained in:
rene
2022-09-14 10:57:51 +02:00
parent 73e797142c
commit faff3b1116
246 changed files with 2138 additions and 1327 deletions

View File

@@ -93,6 +93,9 @@
<StartupObject>
</StartupObject>
</PropertyGroup>
<PropertyGroup>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="Blacklight.Wpf.Controls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -2,7 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="768" Width="1024" WindowStartupLocation="CenterScreen" WindowState="Maximized"
BorderThickness="1" Closing="MainWindow_OnClosing" Closed="Window_Closed">
BorderThickness="1" Closing="MainWindow_OnClosing" Closed="Window_Closed" Loaded="Window_Loaded" Activated="Window_Activated" SourceInitialized="Window_SourceInitialized">
<Grid x:Name="rootGrid">
</Grid>

View File

@@ -2,6 +2,7 @@
using System.ComponentModel;
using System.Threading;
using System.Windows;
using System.Windows.Threading;
using BeWo.Core.Config;
using BeWo.MultiLanguage;
using BS.Shared.Translation;
@@ -29,7 +30,7 @@ namespace BeWo
private void ShowMainControl()
{
Translator t = new Translator(new ServiceTranslator());
//WebRequest.DefaultWebProxy
//System.Net.WebRequest.GetSystemWebProxy()
@@ -134,5 +135,35 @@ namespace BeWo
{
// Environment.ExitCode = 10;
}
bool _shown;
protected override void OnContentRendered(EventArgs e)
{
base.OnContentRendered(e);
if (_shown)
return;
_shown = true;
Dispatcher.BeginInvoke(new Action(() => Activate()), DispatcherPriority.ContextIdle, null);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
private void Window_Activated(object sender, EventArgs e)
{
}
private void Window_SourceInitialized(object sender, EventArgs e)
{
Console.WriteLine("GUI geladen");
Thread.Sleep(500);
}
}
}

View File

@@ -19,7 +19,7 @@ namespace BeWo.Properties {
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {

View File

@@ -12,7 +12,7 @@ namespace BeWo.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.1.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--<system.net>
<defaultProxy useDefaultCredentials="true" />
@@ -7,55 +7,55 @@
<bindings>
<basicHttpBinding>
<binding name="BeWoBasicEndpoint" closeTimeout="00:05:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None"/>
<!-- mode="Transport" für echten Server und "None" sonst-->
</binding>
<binding name="BeWoStreamingEndpoint" receiveTimeout="10:10:00" sendTimeout="10:01:00" maxBufferSize="65536" maxReceivedMessageSize="67108864" transferMode="StreamedRequest" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None"/>
<!-- mode="Transport" für echten Server -->
</binding>
<binding name="QueryServiceEndpoint" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint binding="basicHttpBinding" bindingConfiguration="QueryServiceEndpoint" contract="BeWo.ServiceProxy.IQueryService" name="QueryServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoStreamingEndpoint" contract="BeWo.ServiceProxy.IStreamingService" name="StreamingServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IEmployeeService" name="EmployeeServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.ICustomerService" name="CustomerServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IUserService" name="UserServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IValueListService" name="ValueListServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IDownloadService" name="DownloadServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IResourceService" name="BeWoBasicEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IOperationsService" name="OperationsServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAccountingService" name="AccountingServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAnalysisService" name="AnalysisServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IMailService" name="MailServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IReportService" name="ReportServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="QueryServiceEndpoint" contract="BeWo.ServiceProxy.IQueryService" name="QueryServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoStreamingEndpoint" contract="BeWo.ServiceProxy.IStreamingService" name="StreamingServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IEmployeeService" name="EmployeeServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.ICustomerService" name="CustomerServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IUserService" name="UserServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IValueListService" name="ValueListServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IDownloadService" name="DownloadServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IResourceService" name="BeWoBasicEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IOperationsService" name="OperationsServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAccountingService" name="AccountingServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAnalysisService" name="AnalysisServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IMailService" name="MailServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IReportService" name="ReportServiceEndpoint"/>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="BeWoServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

Binary file not shown.

View File

@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

View File

@@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}

Binary file not shown.

View File

@@ -56,6 +56,9 @@
<setting name="InstallLocation" serializeAs="String">
<value />
</setting>
<setting name="FirstInstallationSuccess" serializeAs="String">
<value>False</value>
</setting>
</BeWoLauncher.Properties.Settings>
</userSettings>
</configuration>

View File

@@ -96,127 +96,163 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Components\ConfirmDemoDialog.xaml.cs">
<Compile Include="Core\ObservableObject.cs" />
<Compile Include="Core\RelayCommand.cs" />
<Compile Include="MVVM\ViewModels\LoginViewModel.cs" />
<Compile Include="MVVM\ViewModels\MainViewModel.cs" />
<Compile Include="MVVM\ViewModels\ViewModelBase.cs" />
<Compile Include="MVVM\View\LoginView.xaml.cs">
<DependentUpon>LoginView.xaml</DependentUpon>
</Compile>
<Compile Include="Store\NavigationStore.cs" />
<Compile Include="View\Components\ConfirmDemoDialog.xaml.cs">
<DependentUpon>ConfirmDemoDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Components\MessageDialog.xaml.cs">
<Compile Include="View\Components\MessageDialog.xaml.cs">
<DependentUpon>MessageDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Converter\BoolNullCheckConverter.cs" />
<Compile Include="Converter\BoolReverseConverter.cs" />
<Compile Include="Converter\BoolVisibilityConverter.cs" />
<Compile Include="Converter\BoolVisibilityHiddenConverter.cs" />
<Compile Include="Converter\BoolVisibilityMultiConverter.cs" />
<Compile Include="Converter\CollectionCountToBoolConverter.cs" />
<Compile Include="Converter\CollectionCountToVisibilityConverter.cs" />
<Compile Include="Converter\DataContract2StringConverter.cs" />
<Compile Include="Converter\Date2CalendarWeekStringConverter.cs" />
<Compile Include="Converter\DateConverter.cs" />
<Compile Include="Converter\DateNullValueToEmptyStringConverter.cs" />
<Compile Include="Converter\DecimalConverter.cs" />
<Compile Include="Converter\EnumToDescriptionConverter.cs" />
<Compile Include="Converter\IListT2DataTableConverter.cs" />
<Compile Include="Converter\IndexBoolConverter.cs" />
<Compile Include="Converter\Int2DecimalConverter.cs" />
<Compile Include="Converter\NullableBoolToBoolConverter.cs" />
<Compile Include="Converter\ObjectBoolConverter.cs" />
<Compile Include="Converter\ObjectVisibilityConverter.cs" />
<Compile Include="Converter\OneWayToSourceSwitch.cs" />
<Compile Include="Converter\ReverseValueEqualsParamVisibilityConverter.cs" />
<Compile Include="Converter\StringBrushConverter.cs" />
<Compile Include="Converter\StringFormatConverter.cs" />
<Compile Include="Converter\StringFormatMulitConverter.cs" />
<Compile Include="Converter\StringLengthVisibilityConverter.cs" />
<Compile Include="Converter\StringLengthVisibilityMultiConverter.cs" />
<Compile Include="Converter\ValueEqualsParamVisibilityConverter.cs" />
<Compile Include="Logic\ProcessController.cs" />
<Compile Include="Logic\ViewController.cs" />
<Compile Include="PageImp\MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
<Compile Include="Logic\Converter\BoolNullCheckConverter.cs" />
<Compile Include="Logic\Converter\BoolReverseConverter.cs" />
<Compile Include="Logic\Converter\BoolVisibilityConverter.cs" />
<Compile Include="Logic\Converter\BoolVisibilityHiddenConverter.cs" />
<Compile Include="Logic\Converter\BoolVisibilityMultiConverter.cs" />
<Compile Include="Logic\Converter\CollectionCountToBoolConverter.cs" />
<Compile Include="Logic\Converter\CollectionCountToVisibilityConverter.cs" />
<Compile Include="Logic\Converter\DataContract2StringConverter.cs" />
<Compile Include="Logic\Converter\Date2CalendarWeekStringConverter.cs" />
<Compile Include="Logic\Converter\DateConverter.cs" />
<Compile Include="Logic\Converter\DateNullValueToEmptyStringConverter.cs" />
<Compile Include="Logic\Converter\DecimalConverter.cs" />
<Compile Include="Logic\Converter\EnumToDescriptionConverter.cs" />
<Compile Include="Logic\Converter\IListT2DataTableConverter.cs" />
<Compile Include="Logic\Converter\IndexBoolConverter.cs" />
<Compile Include="Logic\Converter\Int2DecimalConverter.cs" />
<Compile Include="Logic\Converter\NullableBoolToBoolConverter.cs" />
<Compile Include="Logic\Converter\ObjectBoolConverter.cs" />
<Compile Include="Logic\Converter\ObjectVisibilityConverter.cs" />
<Compile Include="Logic\Converter\OneWayToSourceSwitch.cs" />
<Compile Include="Logic\Converter\ReverseValueEqualsParamVisibilityConverter.cs" />
<Compile Include="Logic\Converter\StringBrushConverter.cs" />
<Compile Include="Logic\Converter\StringFormatConverter.cs" />
<Compile Include="Logic\Converter\StringFormatMulitConverter.cs" />
<Compile Include="Logic\Converter\StringLengthVisibilityConverter.cs" />
<Compile Include="Logic\Converter\StringLengthVisibilityMultiConverter.cs" />
<Compile Include="Logic\Converter\ValueEqualsParamVisibilityConverter.cs" />
<Compile Include="Logic\Controller\DownloadController.cs" />
<Compile Include="Logic\Controller\ProcessController.cs" />
<Compile Include="Logic\Controller\ViewController.cs" />
<Compile Include="View\Pages\InfoScreen.xaml.cs">
<DependentUpon>InfoScreen.xaml</DependentUpon>
</Compile>
<Compile Include="PageImp\UpdateInfo1.xaml.cs">
<DependentUpon>UpdateInfo1.xaml</DependentUpon>
<Compile Include="View\Pages\LoadingScreen.xaml.cs">
<DependentUpon>LoadingScreen.xaml</DependentUpon>
</Compile>
<Compile Include="PageImp\UpdateInfo2.xaml.cs">
<DependentUpon>UpdateInfo2.xaml</DependentUpon>
<Compile Include="View\Pages\UninstallProgressInfo.cs" />
<Compile Include="View\Pages\UpdateProgressInfo.cs" />
<Compile Include="View\Pages\InstallProgressInfo.cs" />
<Compile Include="View\Pages\GenericProgressInfo.xaml.cs">
<DependentUpon>GenericProgressInfo.xaml</DependentUpon>
</Compile>
<Compile Include="PageImp\UpdateInfo3.xaml.cs">
<DependentUpon>UpdateInfo3.xaml</DependentUpon>
<Compile Include="View\Pages\BeWoLoginBorder.xaml.cs">
<DependentUpon>BeWoLoginBorder.xaml</DependentUpon>
</Compile>
<Compile Include="Utils\BeWoHelper.cs" />
<Compile Include="Utils\BeWoPaths.cs" />
<Compile Include="Utils\Update\UpdateFileManager.cs" />
<Compile Include="Components\PasswortAenderungsView.xaml.cs">
<Compile Include="View\Pages\InstallInfo.xaml.cs">
<DependentUpon>InstallInfo.xaml</DependentUpon>
</Compile>
<Compile Include="View\Pages\UpdateInfo.xaml.cs">
<DependentUpon>UpdateInfo.xaml</DependentUpon>
</Compile>
<Compile Include="View\Pages\UninstallInfo.xaml.cs">
<DependentUpon>UninstallInfo.xaml</DependentUpon>
</Compile>
<Compile Include="Logic\Utils\BeWoHelper.cs" />
<Compile Include="Logic\Utils\BeWoLocalConfig.cs" />
<Compile Include="Logic\Utils\BeWoPaths.cs" />
<Compile Include="Logic\Utils\Download\DownloadManager.cs" />
<Compile Include="View\Components\PasswortAenderungsView.xaml.cs">
<DependentUpon>PasswortAenderungsView.xaml</DependentUpon>
</Compile>
<Compile Include="ConnectionProfile.cs" />
<Compile Include="PageImp\02 UpdatePage.xaml.cs">
<DependentUpon>02 UpdatePage.xaml</DependentUpon>
</Compile>
<Compile Include="WindowImp\PopUpWindow.xaml.cs">
<Compile Include="Logic\ConnectionProfile.cs" />
<Compile Include="View\WindowImp\PopUpWindow.xaml.cs">
<DependentUpon>PopUpWindow.xaml</DependentUpon>
</Compile>
<Page Include="Components\ConfirmDemoDialog.xaml">
<Page Include="MVVM\View\LoginView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\EnterTenantDialog.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Components\MessageDialog.xaml">
<Page Include="View\Components\ConfirmDemoDialog.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\ProfileEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\ExceptionMessageBox.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\PasswortAenderungsView.xaml">
<Page Include="View\Components\EnterTenantDialog.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PageImp\01 LoginPage.xaml">
<Page Include="View\Components\MessageDialog.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\ProxyLoginView.xaml">
<Page Include="View\Components\ProfileEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\PwVergessenView.xaml">
<Page Include="View\Components\ExceptionMessageBox.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Components\WaitLayer2.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="OrangeBlack.xaml">
<Page Include="View\Components\PasswortAenderungsView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PageImp\MainPage.xaml">
<Page Include="View\Pages\01 LoginPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Components\ProxyLoginView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Components\PwVergessenView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Components\WaitLayer2.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Pages\InfoScreen.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PageImp\UpdateInfo1.xaml">
<Page Include="View\Pages\GenericProgressInfo.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Pages\LoadingScreen.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PageImp\UpdateInfo2.xaml">
<Page Include="Styles\OrangeBlack.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PageImp\UpdateInfo3.xaml">
<Page Include="View\Pages\BeWoLoginBorder.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="WindowImp\LauncherWindow.xaml">
<Page Include="View\Pages\InstallInfo.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Pages\UpdateInfo.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Pages\UninstallInfo.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\WindowImp\LauncherWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -224,45 +260,41 @@
<DependentUpon>LauncherApp.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="LauncherUtils.cs" />
<Compile Include="Components\EnterTenantDialog.xaml.cs">
<Compile Include="Logic\Utils\LauncherUtils.cs" />
<Compile Include="View\Components\EnterTenantDialog.xaml.cs">
<DependentUpon>EnterTenantDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Components\ProfileEditView.xaml.cs">
<Compile Include="View\Components\ProfileEditView.xaml.cs">
<DependentUpon>ProfileEditView.xaml</DependentUpon>
</Compile>
<Compile Include="Multitenancy\MultitenancyEndpointBehavior.cs" />
<Compile Include="Multitenancy\MultitenancyHeader.cs" />
<Compile Include="Multitenancy\MultitenancyInterceptor.cs" />
<Compile Include="Security\LauncherSecurityHeader.cs" />
<Compile Include="Security\LauncherSecurityHeaderEndpointBehavior.cs" />
<Compile Include="Security\LauncherSecurityHeaderInterceptor.cs" />
<Compile Include="ServiceProxy\LauncherGenerated.cs" />
<Compile Include="ServiceProxy\LauncherServiceFacade.cs" />
<Compile Include="Components\ExceptionMessageBox.xaml.cs">
<Compile Include="Logic\Multitenancy\MultitenancyEndpointBehavior.cs" />
<Compile Include="Logic\Multitenancy\MultitenancyHeader.cs" />
<Compile Include="Logic\Multitenancy\MultitenancyInterceptor.cs" />
<Compile Include="Logic\Security\LauncherSecurityHeader.cs" />
<Compile Include="Logic\Security\LauncherSecurityHeaderEndpointBehavior.cs" />
<Compile Include="Logic\Security\LauncherSecurityHeaderInterceptor.cs" />
<Compile Include="Logic\ServiceProxy\LauncherGenerated.cs" />
<Compile Include="Logic\ServiceProxy\LauncherServiceFacade.cs" />
<Compile Include="View\Components\ExceptionMessageBox.xaml.cs">
<DependentUpon>ExceptionMessageBox.xaml</DependentUpon>
</Compile>
<Compile Include="PageImp\01 LoginPage.xaml.cs">
<Compile Include="View\Pages\01 LoginPage.xaml.cs">
<DependentUpon>01 LoginPage.xaml</DependentUpon>
</Compile>
<Compile Include="Components\ProxyLoginView.xaml.cs">
<Compile Include="View\Components\ProxyLoginView.xaml.cs">
<DependentUpon>ProxyLoginView.xaml</DependentUpon>
</Compile>
<Compile Include="Components\PwVergessenView.xaml.cs">
<Compile Include="View\Components\PwVergessenView.xaml.cs">
<DependentUpon>PwVergessenView.xaml</DependentUpon>
</Compile>
<Compile Include="Components\WaitLayer2.xaml.cs">
<Compile Include="View\Components\WaitLayer2.xaml.cs">
<DependentUpon>WaitLayer2.xaml</DependentUpon>
</Compile>
<Compile Include="WindowImp\LauncherWindow.xaml.cs">
<Compile Include="View\WindowImp\LauncherWindow.xaml.cs">
<DependentUpon>LauncherWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="PageImp\02 UpdatePage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="WindowImp\PopUpWindow.xaml">
<Page Include="View\WindowImp\PopUpWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -300,127 +332,127 @@
</None>
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\16_bulleted_list.png" />
<Resource Include="Icons\16_employee.png" />
<Resource Include="Icons\16_euro.png" />
<Resource Include="Icons\16_female.png" />
<Resource Include="Icons\16_male.png" />
<Resource Include="Icons\16_report.png" />
<Resource Include="Icons\Add24.png" />
<Resource Include="Icons\adobe-pdf-icon.png" />
<Resource Include="Icons\Alarm.png" />
<Resource Include="Icons\AlertsDisabled.png" />
<Resource Include="Icons\AnonymousUserDisabled.png" />
<Resource Include="Icons\Archiv.png" />
<Resource Include="Icons\ArrowLeft.png" />
<Resource Include="Icons\ArrowRight.png" />
<Resource Include="Icons\bewologo_big.gif" />
<Resource Include="Icons\bewoplaner_logo_big.png" />
<Resource Include="Icons\bewoplaner_logo_small.png" />
<Resource Include="Icons\bslogo.gif" />
<Resource Include="Icons\Calendar 1.png" />
<Resource Include="Icons\Calendar1Day24.png" />
<Resource Include="Icons\Calendar31Day24.png" />
<Resource Include="Icons\Calendar5Day24.png" />
<Resource Include="Icons\Calendar7Day24.png" />
<Resource Include="Icons\CalendarDisabled.png" />
<Resource Include="Icons\CashStackDisabled.png" />
<Resource Include="Icons\ChartBarDisabled.png" />
<Resource Include="Icons\ChartLineDisabled.png" />
<Resource Include="Icons\ClipboardDisabled.png" />
<Resource Include="Icons\CoinsDisabled.png" />
<Resource Include="Icons\ConfigurationDisabled.png" />
<Resource Include="Icons\ConfigurationToolsDisabled.png" />
<Resource Include="Icons\ContactCardDisabled.png" />
<Resource Include="Icons\ContactCardWebDisabled.png" />
<Resource Include="Icons\Copy.png" />
<Resource Include="Icons\Cut.png" />
<Resource Include="Icons\delete.png" />
<Resource Include="Icons\Delete24.png" />
<Resource Include="Icons\Document48.png" />
<Resource Include="Icons\DocumentWithAdd.png" />
<Resource Include="Icons\DocumentWithAdd2.png" />
<Resource Include="Icons\edit.png" />
<Resource Include="Icons\Email.png" />
<Resource Include="Icons\excel.png" />
<Resource Include="Icons\Favorites16.png" />
<Resource Include="Icons\Favorites32.png" />
<Resource Include="Icons\FavoritesDisabled32.png" />
<Resource Include="Icons\Folder.png" />
<Resource Include="Icons\glucklicher.png" />
<Resource Include="Icons\Haeckchen.png" />
<Resource Include="Icons\Help.png" />
<Resource Include="Icons\HelpDisabled.png" />
<Resource Include="Icons\History24.png" />
<Resource Include="Icons\HistoryDisabled - Kopie.png" />
<Resource Include="Icons\HistoryDisabled.png" />
<Resource Include="Icons\Home.png" />
<Resource Include="Icons\HomeDisabled - Kopie.png" />
<Resource Include="Icons\HomeDisabled.png" />
<Resource Include="Icons\IDBadgeDisabled - Kopie.png" />
<Resource Include="Icons\IDBadgeDisabled.png" />
<Resource Include="Icons\InternetDisabled - Kopie.png" />
<Resource Include="Icons\InternetDisabled.png" />
<Resource Include="Icons\Keywords.png" />
<Resource Include="Icons\KeywordsDisabled.png" />
<Resource Include="Icons\klient-avatar.png" />
<Resource Include="Icons\Light Bulb.png" />
<Resource Include="Icons\Logout - Kopie.png" />
<Resource Include="Icons\Logout.png" />
<Resource Include="Icons\LogoutDisabled.png" />
<Resource Include="Icons\ManufacturingDisabled - Kopie.png" />
<Resource Include="Icons\ManufacturingDisabled.png" />
<Resource Include="Icons\massnahme.png" />
<Resource Include="Icons\MenuDisabled.png" />
<Resource Include="Icons\mitarbeiter-avatar.png" />
<Resource Include="Icons\mitarbeiter-team-avatar.png" />
<Resource Include="Icons\new.png" />
<Resource Include="Icons\Newspaper.png" />
<Resource Include="Icons\ObjectsDisabled.png" />
<Resource Include="Icons\OfficeBulidingBlackDisabled.png" />
<Resource Include="Icons\Paste.png" />
<Resource Include="Icons\Paste24.png" />
<Resource Include="Icons\Redo - Kopie.png" />
<Resource Include="Icons\Redo.png" />
<Resource Include="Icons\Rename24 - Kopie.png" />
<Resource Include="Icons\Rename24.png" />
<Resource Include="Icons\RSS Newsfeed - Kopie.png" />
<Resource Include="Icons\RSS Newsfeed.png" />
<Resource Include="Icons\Save - Kopie.png" />
<Resource Include="Icons\Save.png" />
<Resource Include="Icons\Search - Kopie.png" />
<Resource Include="Icons\Search.png" />
<Resource Include="Icons\SMS24_2.png" />
<Resource Include="Icons\sortiert.png" />
<Resource Include="Icons\Symbol Delete.png" />
<Resource Include="Icons\Symbol Edit.png" />
<Resource Include="Icons\Symbol Help.png" />
<Resource Include="Icons\SymbolRefresh32.png" />
<Resource Include="Icons\SymbolRefresh32Disabled - Kopie.png" />
<Resource Include="Icons\SymbolRefresh32Disabled.png" />
<Resource Include="Icons\TechSupportWhiteDisabled.png" />
<Resource Include="Icons\trauriges-smiley.png" />
<Resource Include="Icons\Undo - Kopie.png" />
<Resource Include="Icons\Undo.png" />
<Resource Include="Icons\unsortiert.png" />
<Resource Include="Icons\User Business Male.png" />
<Resource Include="Icons\User Home Boy.png" />
<Resource Include="Icons\User Home Girl.png" />
<Resource Include="Icons\UserBusinessMaleDisabled - Kopie.png" />
<Resource Include="Icons\UserBusinessMaleDisabled.png" />
<Resource Include="Icons\UserGroupBusinessDisabled - Kopie.png" />
<Resource Include="Icons\UserGroupBusinessDisabled.png" />
<Resource Include="Icons\UserGroupDisabled - Kopie.png" />
<Resource Include="Icons\UserGroupDisabled.png" />
<Resource Include="Icons\UserGroupHome24bw.png" />
<Resource Include="Icons\UserHomeBoyDisabled.png" />
<Resource Include="Icons\UserHomeMaleDisabled.png" />
<Resource Include="Icons\UserHomeMaleDisabled32.png" />
<Resource Include="Icons\UserMaleBlackDisabled.png" />
<Resource Include="Icons\warning-16x16.png" />
<Resource Include="Icons\WeitereNachrichtLaden.png" />
<Resource Include="Icons\word.png" />
<Resource Include="Icons\ziel.png" />
<Resource Include="View\Icons\16_bulleted_list.png" />
<Resource Include="View\Icons\16_employee.png" />
<Resource Include="View\Icons\16_euro.png" />
<Resource Include="View\Icons\16_female.png" />
<Resource Include="View\Icons\16_male.png" />
<Resource Include="View\Icons\16_report.png" />
<Resource Include="View\Icons\Add24.png" />
<Resource Include="View\Icons\adobe-pdf-icon.png" />
<Resource Include="View\Icons\Alarm.png" />
<Resource Include="View\Icons\AlertsDisabled.png" />
<Resource Include="View\Icons\AnonymousUserDisabled.png" />
<Resource Include="View\Icons\Archiv.png" />
<Resource Include="View\Icons\ArrowLeft.png" />
<Resource Include="View\Icons\ArrowRight.png" />
<Resource Include="View\Icons\bewologo_big.gif" />
<Resource Include="View\Icons\bewoplaner_logo_big.png" />
<Resource Include="View\Icons\bewoplaner_logo_small.png" />
<Resource Include="View\Icons\bslogo.gif" />
<Resource Include="View\Icons\Calendar 1.png" />
<Resource Include="View\Icons\Calendar1Day24.png" />
<Resource Include="View\Icons\Calendar31Day24.png" />
<Resource Include="View\Icons\Calendar5Day24.png" />
<Resource Include="View\Icons\Calendar7Day24.png" />
<Resource Include="View\Icons\CalendarDisabled.png" />
<Resource Include="View\Icons\CashStackDisabled.png" />
<Resource Include="View\Icons\ChartBarDisabled.png" />
<Resource Include="View\Icons\ChartLineDisabled.png" />
<Resource Include="View\Icons\ClipboardDisabled.png" />
<Resource Include="View\Icons\CoinsDisabled.png" />
<Resource Include="View\Icons\ConfigurationDisabled.png" />
<Resource Include="View\Icons\ConfigurationToolsDisabled.png" />
<Resource Include="View\Icons\ContactCardDisabled.png" />
<Resource Include="View\Icons\ContactCardWebDisabled.png" />
<Resource Include="View\Icons\Copy.png" />
<Resource Include="View\Icons\Cut.png" />
<Resource Include="View\Icons\delete.png" />
<Resource Include="View\Icons\Delete24.png" />
<Resource Include="View\Icons\Document48.png" />
<Resource Include="View\Icons\DocumentWithAdd.png" />
<Resource Include="View\Icons\DocumentWithAdd2.png" />
<Resource Include="View\Icons\edit.png" />
<Resource Include="View\Icons\Email.png" />
<Resource Include="View\Icons\excel.png" />
<Resource Include="View\Icons\Favorites16.png" />
<Resource Include="View\Icons\Favorites32.png" />
<Resource Include="View\Icons\FavoritesDisabled32.png" />
<Resource Include="View\Icons\Folder.png" />
<Resource Include="View\Icons\glucklicher.png" />
<Resource Include="View\Icons\Haeckchen.png" />
<Resource Include="View\Icons\Help.png" />
<Resource Include="View\Icons\HelpDisabled.png" />
<Resource Include="View\Icons\History24.png" />
<Resource Include="View\Icons\HistoryDisabled - Kopie.png" />
<Resource Include="View\Icons\HistoryDisabled.png" />
<Resource Include="View\Icons\Home.png" />
<Resource Include="View\Icons\HomeDisabled - Kopie.png" />
<Resource Include="View\Icons\HomeDisabled.png" />
<Resource Include="View\Icons\IDBadgeDisabled - Kopie.png" />
<Resource Include="View\Icons\IDBadgeDisabled.png" />
<Resource Include="View\Icons\InternetDisabled - Kopie.png" />
<Resource Include="View\Icons\InternetDisabled.png" />
<Resource Include="View\Icons\Keywords.png" />
<Resource Include="View\Icons\KeywordsDisabled.png" />
<Resource Include="View\Icons\klient-avatar.png" />
<Resource Include="View\Icons\Light Bulb.png" />
<Resource Include="View\Icons\Logout - Kopie.png" />
<Resource Include="View\Icons\Logout.png" />
<Resource Include="View\Icons\LogoutDisabled.png" />
<Resource Include="View\Icons\ManufacturingDisabled - Kopie.png" />
<Resource Include="View\Icons\ManufacturingDisabled.png" />
<Resource Include="View\Icons\massnahme.png" />
<Resource Include="View\Icons\MenuDisabled.png" />
<Resource Include="View\Icons\mitarbeiter-avatar.png" />
<Resource Include="View\Icons\mitarbeiter-team-avatar.png" />
<Resource Include="View\Icons\new.png" />
<Resource Include="View\Icons\Newspaper.png" />
<Resource Include="View\Icons\ObjectsDisabled.png" />
<Resource Include="View\Icons\OfficeBulidingBlackDisabled.png" />
<Resource Include="View\Icons\Paste.png" />
<Resource Include="View\Icons\Paste24.png" />
<Resource Include="View\Icons\Redo - Kopie.png" />
<Resource Include="View\Icons\Redo.png" />
<Resource Include="View\Icons\Rename24 - Kopie.png" />
<Resource Include="View\Icons\Rename24.png" />
<Resource Include="View\Icons\RSS Newsfeed - Kopie.png" />
<Resource Include="View\Icons\RSS Newsfeed.png" />
<Resource Include="View\Icons\Save - Kopie.png" />
<Resource Include="View\Icons\Save.png" />
<Resource Include="View\Icons\Search - Kopie.png" />
<Resource Include="View\Icons\Search.png" />
<Resource Include="View\Icons\SMS24_2.png" />
<Resource Include="View\Icons\sortiert.png" />
<Resource Include="View\Icons\Symbol Delete.png" />
<Resource Include="View\Icons\Symbol Edit.png" />
<Resource Include="View\Icons\Symbol Help.png" />
<Resource Include="View\Icons\SymbolRefresh32.png" />
<Resource Include="View\Icons\SymbolRefresh32Disabled - Kopie.png" />
<Resource Include="View\Icons\SymbolRefresh32Disabled.png" />
<Resource Include="View\Icons\TechSupportWhiteDisabled.png" />
<Resource Include="View\Icons\trauriges-smiley.png" />
<Resource Include="View\Icons\Undo - Kopie.png" />
<Resource Include="View\Icons\Undo.png" />
<Resource Include="View\Icons\unsortiert.png" />
<Resource Include="View\Icons\User Business Male.png" />
<Resource Include="View\Icons\User Home Boy.png" />
<Resource Include="View\Icons\User Home Girl.png" />
<Resource Include="View\Icons\UserBusinessMaleDisabled - Kopie.png" />
<Resource Include="View\Icons\UserBusinessMaleDisabled.png" />
<Resource Include="View\Icons\UserGroupBusinessDisabled - Kopie.png" />
<Resource Include="View\Icons\UserGroupBusinessDisabled.png" />
<Resource Include="View\Icons\UserGroupDisabled - Kopie.png" />
<Resource Include="View\Icons\UserGroupDisabled.png" />
<Resource Include="View\Icons\UserGroupHome24bw.png" />
<Resource Include="View\Icons\UserHomeBoyDisabled.png" />
<Resource Include="View\Icons\UserHomeMaleDisabled.png" />
<Resource Include="View\Icons\UserHomeMaleDisabled32.png" />
<Resource Include="View\Icons\UserMaleBlackDisabled.png" />
<Resource Include="View\Icons\warning-16x16.png" />
<Resource Include="View\Icons\WeitereNachrichtLaden.png" />
<Resource Include="View\Icons\word.png" />
<Resource Include="View\Icons\ziel.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="BeWoPlaner.ico" />
@@ -442,5 +474,10 @@
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<Folder Include="Command\" />
<Folder Include="Logic\Interfaces\" />
<Folder Include="MVVM\Model\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -3,70 +3,18 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:BeWoLauncher"
StartupUri="WindowImp/LauncherWindow.xaml" Exit="Application_Exit">
xmlns:viewModel="clr-namespace:BeWoLauncher.MVVM.ViewModels"
xmlns:view="clr-namespace:BeWoLauncher.MVVM.View"
StartupUri="View/WindowImp/LauncherWindow.xaml" Exit="Application_Exit">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="OrangeBlack.xaml" />
<ResourceDictionary Source="Styles/OrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="PopUpWindowStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="2" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 10,10 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Bottom">
<ContentPresenter TextElement.FontSize="16" Margin="5,0,0,3" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0" Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" Grid.ColumnSpan="1" Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<DataTemplate DataType="{x:Type viewModel:LoginViewModel}">
<view:LoginView/>
</DataTemplate>
</ResourceDictionary>
</Application.Resources>
</Application>

View File

@@ -1,8 +1,8 @@
using BeWoLauncher.Components;
using BeWoLauncher.Logic;
using BeWoLauncher.Logic.Controller;
using BeWoLauncher.ServiceProxy;
using BeWoLauncher.Utils;
using BeWoLauncher.Utils.Update;
using BeWoLauncher.Store;
using BeWoLauncher.WindowImp;
using BS.SharedLauncher;
using BS.SharedLauncher.Information;
@@ -34,9 +34,16 @@ namespace BeWoLauncher
/// </summary>
public partial class LauncherApp : Application
{
private readonly NavigationStore _navigationStore;
public static string ShortVersion => "3";
public static string Version => "Version 3.0";
public LauncherApp()
{
_navigationStore = new NavigationStore();
}
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWoLauncher
namespace BeWoLauncher.Logic
{
public class ConnectionProfile
{

View File

@@ -0,0 +1,37 @@
using BeWoLauncher.Utils.Download;
using BS.SharedLauncher.Update;
using BS.SharedLauncher.Utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWoLauncher.Logic.Controller
{
public static class DownloadController
{
public static DownloadManager Manager { get; set; }
public static long FreeSpace { get; set; }
public static long NeededSpace => Manager.ResponseInfo.DownloadSize;
public static void Start()
{
Manager = new DownloadManager();
}
public static string UpdateDiskSpace(string path)
{
FileInfo f = new FileInfo(path);
string drive = System.IO.Path.GetPathRoot(f.FullName);
FreeSpace = NonspecificTools.GetTotalFreeSpace(drive);
string txt;
if (FreeSpace >= 0)
return NonspecificTools.SizeSuffix((ulong)FreeSpace);
else
return "error";
}
}
}

View File

@@ -7,12 +7,12 @@ using System.IO;
using System.IO.Pipes;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
using static BeWoLauncher.Logic.ViewController;
namespace BeWoLauncher.Logic
namespace BeWoLauncher.Logic.Controller
{
public static class ProcessController
{
@@ -43,10 +43,16 @@ namespace BeWoLauncher.Logic
MessageBox.Show("BeWo Prozess läuft bereits");
StartLauncherShutdown();
}
Process[] processes2 = Process.GetProcessesByName("BeWoPlaner");
if (processes2.Length > 0)
{
MessageBox.Show("BeWo Prozess läuft bereits");
StartLauncherShutdown();
}
}
internal static void StartLauncherShutdown()
{
Current.Shutdown();
@@ -65,7 +71,13 @@ namespace BeWoLauncher.Logic
{
PlanerProcess.StartInfo.Arguments = pipeServer.GetClientHandleAsString();
PlanerProcess.StartInfo.UseShellExecute = false;
PlanerProcess.StartInfo.CreateNoWindow = false;
PlanerProcess.StartInfo.RedirectStandardOutput = true;
PlanerProcess.OutputDataReceived += MessageFromPlanerClient;
PlanerProcess.Start();
PlanerProcess.BeginOutputReadLine();
pipeServer.DisposeLocalCopyOfClientHandle();
@@ -87,8 +99,6 @@ namespace BeWoLauncher.Logic
}
}
ViewController.LauncherWindow.Hide();
}
internal static void KillPlanerProcess()
{
@@ -110,14 +120,24 @@ namespace BeWoLauncher.Logic
if (PlanerProcess.ExitCode == 100)
{
CurrentLauncher.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate {
ViewController.ShowPage(LauncherPageType.Login);
ViewController.LauncherWindow.Show();
CurrentLauncher.Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)delegate {
Thread.Sleep(500);
ViewController.RestartView();
});
return;
}
CurrentLauncher.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)StartLauncherShutdown);
}
private static void MessageFromPlanerClient(object sender, DataReceivedEventArgs args)
{
var data = args.Data;
if (data == "GUI geladen")
{
ViewController.LauncherWindow.Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() => ViewController.LauncherWindow.Hide()));
}
}
}
}

View File

@@ -0,0 +1,358 @@
using BeWoLauncher.Logic.Controller;
using BeWoLauncher.Utils;
using BeWoLauncher.View.Pages;
using BeWoLauncher.WindowImp;
using BS.SharedLauncher.Extensions;
using BS.SharedLauncher.Information;
using BS.SharedLauncher.Logic;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Threading;
namespace BeWoLauncher.Logic.Controller
{
public static class ViewController
{
static bool isBeWoLoginBorderPresent = false;
static BeWoLoginBorder BeWoLoginBorder = null;
static LauncherPageType currentPage;
private static Exception error;
public enum LauncherPageType
{
Login,
InstallInfo,
InstallProgress,
InstallFailed,
UpdateInfo,
UpdateProgress,
UpdateFailed,
UninstallInfo,
UninstallProgress,
UninstallFailed,
UninstallSuccessful,
LoadingScreen,
NoPermissionInfo
}
public static LauncherWindow LauncherWindow { get; set; }
public static Dispatcher Dispatcher => LauncherWindow.Dispatcher;
public static void StartView()
{
ShowPage(LauncherPageType.Login);
}
public static void RestartView()
{
ShowPage(LauncherPageType.Login);
LauncherWindow.Show();
LauncherWindow.Activate();
}
public static void StartWaiting() => LauncherWindow.StartWaiting();
public static void EndWaiting() => LauncherWindow.EndWaiting();
public static bool CheckForPermissions(string path)
{
return FileController.IsDirectoryWritable(path, false);
}
public static void CheckForNewestVersion()
{
Task.Run(() =>
{
DownloadController.Start();
DownloadController.Manager.StartDownloadInfo();
Dispatcher.BeginInvoke(DispatcherPriority.Render,
(Action)delegate
{
if (DownloadController.Manager.ResponseInfo.HasSomethingToDo)
{
if (BeWoLocalConfig.GetFirstInstallationSuccess() &&
File.Exists(BeWoPaths.GetPlanerExePath()))
{
ShowPage(LauncherPageType.UpdateInfo);
}
else
{
ShowPage(LauncherPageType.InstallInfo);
}
}
else
{
ShowPage(LauncherPageType.LoadingScreen);
}
EndWaiting();
});
});
}
public static void InstallationFailed(Exception exception)
{
error = exception;
ShowPage(LauncherPageType.InstallFailed);
}
public static void UpdateFailed(Exception exception)
{
error = exception;
ShowPage(LauncherPageType.UpdateFailed);
}
public static void UninstallFailed(Exception exception)
{
error = exception;
ShowPage(LauncherPageType.UninstallFailed);
}
public static void CheckForAutoLogin(object sender, EventArgs e)
{
var autologin = bool.TryParse(ConfigurationManager.AppSettings.Get("AutoLogin"), out bool c) && c;
if (autologin)
if (sender is LoginPage loginPage)
loginPage.ClickLogin();
}
public static void LoginSuccessful(object sender, EventArgs e)
{
#region confirm demo
#if DEBUG
//if (ConnectionInformation.Tenant == "demo")
//{
// var dlg = new ConfirmDemoDialog();
// dlg.ShowDialog();
//}
#else
if (ConnectionInformation.Tenant == "demo")
{
var dlg = new ConfirmDemoDialog();
dlg.ShowDialog();
}
#endif
#endregion
BeWoPaths.ActualPlanerLocation = BeWoPaths.GetInstallLocationFromSetting();
if (BeWoPaths.ActualPlanerLocation is object && !CheckForPermissions(BeWoPaths.ActualPlanerLocation))
{
ShowPage(LauncherPageType.NoPermissionInfo);
}
else
{
CheckForNewestVersion();
}
}
private static UserControl GetNewPage(LauncherPageType type)
{
switch (type)
{
case LauncherPageType.Login:
var login = new LoginPage();
login.Loaded += CheckForAutoLogin;
login.LoginSuccessful += LoginSuccessful;
return login;
case LauncherPageType.InstallInfo:
var install = new InstallInfo();
install.Accept += (s, e) =>
{
if (CheckForPermissions(install.InstallLocation))
{
BeWoPaths.SetAndSaveInstallLocation(install.InstallLocation);
BeWoLocalConfig.SetFirstInstallationSuccess(true);
ShowPage(LauncherPageType.InstallProgress);
}
else
{
ShowPage(LauncherPageType.NoPermissionInfo);
}
};
install.Abort += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(install);
case LauncherPageType.InstallProgress:
var installprogress = new InstallProgressInfo();
installprogress.InstallSuccessful += (s, e) =>
{
BeWoLocalConfig.SetFirstInstallationSuccess(true);
ProcessController.StartPlanerProcess();
};
return GetControlInBorder(installprogress);
case LauncherPageType.InstallFailed:
var installError = new InfoScreen();
installError.Title = "Installation fehlgeschlagen!";
installError.Text = error.ToString();
installError.Button1Click += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(installError);
case LauncherPageType.UpdateInfo:
var update = new UpdateInfo();
update.Accept += (s, e) => { ShowPage(LauncherPageType.UpdateProgress); };
update.Abort += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(update);
case LauncherPageType.UpdateProgress:
var updateProgress = new UpdateProgressInfo();
updateProgress.UpdateSuccessful += (s, e) => { ShowPage(LauncherPageType.LoadingScreen); };
return GetControlInBorder(updateProgress);
case LauncherPageType.UpdateFailed:
var updateError = new InfoScreen();
updateError.Title = "Update fehlgeschlagen!";
updateError.Text = error.ToString();
updateError.Button1Click += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(updateError);
case LauncherPageType.UninstallInfo:
var uninstall = new UninstallInfo();
uninstall.Accept += (s, e) => { ShowPage(LauncherPageType.UpdateProgress); };
uninstall.Abort += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(uninstall);
case LauncherPageType.UninstallProgress:
var uninstallProgress = new UninstallProgressInfo();
uninstallProgress.UninstallSuccessful += (s, e) => { ShowPage(LauncherPageType.UninstallSuccessful); };
return GetControlInBorder(uninstallProgress);
case LauncherPageType.UninstallFailed:
var uninstallFailed = new InfoScreen();
uninstallFailed.Title = "Deinstallation fehlgeschlagen!";
uninstallFailed.Text = error.ToString();
uninstallFailed.Button1Click += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(uninstallFailed);
case LauncherPageType.UninstallSuccessful:
var uninstallSuccessful = new InfoScreen();
uninstallSuccessful.Title = "Deinstallation erfolgreich!";
uninstallSuccessful.Text = "Kehre zum Login zurück...";
uninstallSuccessful.CollapseCopyButton();
uninstallSuccessful.Button1Click += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(uninstallSuccessful);
case LauncherPageType.LoadingScreen:
var loading = new LoadingScreen();
loading.Loaded += (s, e) =>
{
Task.Run(() => ProcessController.StartPlanerProcess());
};
return GetControlInBorder(loading);
case LauncherPageType.NoPermissionInfo:
var noper = new InfoScreen();
noper.Title = "Keine Rechte auf Speicherort!";
noper.Text = "Es liegt eine neue Version. Sie besitzen aber nicht die benötigten Rechte, um diese anzuwenden. Bitte wenden Sie sich an Ihren System-Administrator!";
noper.Button1Click += (s, e) => { ShowPage(LauncherPageType.Login); };
return GetControlInBorder(noper);
}
throw new NotImplementedException();
}
private static UserControl GetControlInBorder(UserControl uc)
{
if (isBeWoLoginBorderPresent)
return uc;
BeWoLoginBorder = new BeWoLoginBorder();
isBeWoLoginBorderPresent = true;
BeWoLoginBorder.contentGrid.Children.Clear();
BeWoLoginBorder.contentGrid.Children.Add(uc);
return BeWoLoginBorder;
}
private static void ShowPage(LauncherPageType type)
{
bool before = isBeWoLoginBorderPresent;
var page = GetNewPage(type);
if (type == LauncherPageType.Login)
{
isBeWoLoginBorderPresent = false;
BeWoLoginBorder = null;
Dispatcher.BeginInvoke(DispatcherPriority.Render,
(Action)delegate
{
LauncherWindow.SetMainContent(page);
});
}
else
{
// Neu Laden
if (!before)
{
Dispatcher.BeginInvoke(DispatcherPriority.Render,
(Action)delegate
{
LauncherWindow.SetMainContent(page);
});
}
// Bereits geladen
else
{
Dispatcher.BeginInvoke(DispatcherPriority.Render,
(Action)delegate
{
BeWoLoginBorder.contentGrid.Children.Clear();
BeWoLoginBorder.contentGrid.Children.Add(page);
});
}
}
currentPage = type;
}
}
}

View File

@@ -332,6 +332,10 @@ namespace BeWoLauncher.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IDownloadBeWoService/Download2", ReplyAction="http://tempuri.org/IDownloadBeWoService/Download2Response")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWoLauncher.ServiceProxy.BeWoFault), Action="http://tempuri.org/IDownloadBeWoService/Download2BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.SharedLauncher.DataContract.DownloadPlanerResponseDC Download2(BS.SharedLauncher.DataContract.DownloadPlanerRequestDC request);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IDownloadBeWoService/DownloadInfo", ReplyAction="http://tempuri.org/IDownloadBeWoService/DownloadInfoResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWoLauncher.ServiceProxy.BeWoFault), Action="http://tempuri.org/IDownloadBeWoService/DownloadInfoBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.SharedLauncher.DataContract.DownloadPlanerResponseInfoDC DownloadInfo(BS.SharedLauncher.DataContract.DownloadPlanerRequestDC request);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -372,5 +376,10 @@ namespace BeWoLauncher.ServiceProxy
{
return base.Channel.Download2(request);
}
public BS.SharedLauncher.DataContract.DownloadPlanerResponseInfoDC DownloadInfo(BS.SharedLauncher.DataContract.DownloadPlanerRequestDC request)
{
return base.Channel.DownloadInfo(request);
}
}
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWoLauncher.Utils
{
public static class BeWoLocalConfig
{
public static string GetInstallLocation()
{
return Properties.Settings.Default.InstallLocation;
}
public static void SetInstallLocation(string path)
{
Properties.Settings.Default.InstallLocation = path;
Properties.Settings.Default.Save();
}
public static bool GetFirstInstallationSuccess()
{
return Properties.Settings.Default.FirstInstallationSuccess;
}
public static void SetFirstInstallationSuccess(bool b)
{
Properties.Settings.Default.FirstInstallationSuccess = b;
Properties.Settings.Default.Save();
}
}
}

View File

@@ -17,7 +17,7 @@ namespace BeWoLauncher.Utils
//private static readonly string versionXml = "bewo.version";
public static string LoginSelectionPlanerLocation { get; set; }
public static string ActualPlanerLocation { get; private set; }
public static string ActualPlanerLocation { get; set; }
/// <summary>
/// Holt den Install Ort aus den Properties Settings.
@@ -26,41 +26,52 @@ namespace BeWoLauncher.Utils
/// <returns></returns>
public static string GetInstallLocationFromSettingOrDefault()
{
var installLocation = Properties.Settings.Default.InstallLocation;
var installLocation = GetInstallLocationFromSetting();
if (string.IsNullOrWhiteSpace(installLocation))
{
installLocation = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "data");
installLocation = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, BeWoPathFileConfig.SubDirectory);
}
return installLocation;
}
public static void CheckPathForInstallation(string newLocation)
public static string GetInstallLocationFromSetting()
{
return BeWoLocalConfig.GetInstallLocation();
}
/// <summary>
///
/// </summary>
/// <param name="newLocation"></param>
/// <returns>Gibt true aus, wenn der Path sich verändert hat.</returns>
public static bool ChangePath(string newLocation)
{
var info = new DirectoryInfo(newLocation);
if (LoginSelectionPlanerLocation == newLocation)
{
return;
return false;
}
if (info.GetDirectories().Any() || info.GetFiles().Any())
{
MessageBox.Show($"Ordner muss leer sein! Es sind {info.GetDirectories().Count()} Ordner und {info.GetFiles().Count()} Datei(en) enthalten");
return;
}
//if (newLocation.Exists() && (info.GetDirectories().Any() || info.GetFiles().Any()))
//{
// MessageBox.Show($"Ordner muss leer sein! Es sind {info.GetDirectories().Count()} Ordner und {info.GetFiles().Count()} Datei(en) enthalten");
// return false;
//}
// Annahme: Ordner ist leer und neuer Ort
LoginSelectionPlanerLocation.ClearFolder();
LoginSelectionPlanerLocation = newLocation;
return true;
}
public static void SetAndSaveInstallLocation(string path)
{
ActualPlanerLocation = path;
Properties.Settings.Default.InstallLocation = ActualPlanerLocation;
Properties.Settings.Default.Save();
BeWoLocalConfig.SetInstallLocation(path);
}
public static string GetDownloadPath()

View File

@@ -0,0 +1,155 @@
using BeWoLauncher.ServiceProxy;
using BS.SharedLauncher;
using BS.SharedLauncher.DataContract;
using BS.SharedLauncher.Exceptions;
using BS.SharedLauncher.Extensions;
using BS.SharedLauncher.Information;
using BS.SharedLauncher.Logic;
using BS.SharedLauncher.Update;
using BS.SharedLauncher.Utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Xml.Serialization;
namespace BeWoLauncher.Utils.Download
{
public class DownloadManager
{
public DownloadPlanerRequestDC Request { get; set; }
public DownloadPlanerResponseInfoDC ResponseInfo { get; set; }
public DownloadPlanerResponseDC Response { get; set; }
public string DownloadZipPath { get; set; }
public string DownloadFolder => BeWoPaths.GetDownloadPath();
public string ApplyFolder => BeWoPaths.GetApplyPath();
public DownloadManager()
{
Request = null;
ResponseInfo = null;
Response = null;
}
public void StartDownloadInfo()
{
CreateDownloadRequest();
GetDownloadResponseInfo();
}
private void CreateDownloadRequest()
{
Request = new DownloadPlanerRequestDC();
if (Request.PlanerRootFolderExists = BeWoPaths.ActualPlanerLocation.Exists())
{
if (Request.DownloadFolderExists = DownloadFolder.Exists())
if (!(Request.DownloadFolderIsEmpty = DownloadFolder.IsFolderEmpty()))
Request.DownloadedPackages = FileController.LoadInfos(DownloadFolder);
if (Request.ApplyFolderExists = ApplyFolder.Exists())
if (!(Request.ApplyFolderIsEmpty = ApplyFolder.IsFolderEmpty()))
{
var files = FileController.GetPlanerFiles(ApplyFolder);
if (files is object)
files.ForEach(file => file.LoadHash());
FileController.TryGetPackageInfo(ApplyFolder, out var package);
if (package == null)
package = new PlanerPackageInfoDC();
package.Files = files.ToPlanerFileInfoDCList();
Request.ApplyPackage = package;
}
}
}
private void GetDownloadResponse()
{
Response = LauncherServiceFacade.DoDownloadBeWoServiceSync(x => x.Download2(Request));
}
private void GetDownloadResponseInfo()
{
ResponseInfo = LauncherServiceFacade.DoDownloadBeWoServiceSync(x => x.DownloadInfo(Request));
}
public void StartDownload(bool skipLock)
{
GetDownloadResponse();
if (!Response.HasToDo())
{
// Macht das Sinn?
// Ne, wahrsch. Fehler
return;
}
if (Response.HasToDoNewZip())
{
DownloadFolder.CreateFolder();
DownloadFolder.Lock(skipLock);
DownloadZipPath = FileController.GetNewZipPath(BeWoPaths.GetDownloadPath());
FileController.SaveDZip(DownloadZipPath, Response.NewZipData);
FileController.SaveInfo(DownloadZipPath, Response.NewZipInfo);
FileController.SaveInfo(BeWoPaths.GetDownloadPath(), Response.LatestApplicationInfo);
Response.NewZipData = null;
DownloadFolder.Unlock();
}
}
public void StartApply(bool skiplock, Action<int, object> apply)
{
ApplyFolder.CreateFolder();
ApplyFolder.Lock(skiplock);
if (Response.HasToDoDownload2Keep())
{
FileController.ApplyDZip(Response.DownloadFilesToKeep, ApplyFolder, apply);
}
if (Response.HasToDoNewZip())
{
FileController.ApplyDZip(DownloadZipPath, ApplyFolder, apply);
}
if (Response.HasToRemoveFiles)
{
apply(3, null);
Thread.Sleep(500);
FileController.RemoveUnsuedFiles(Response.LatestApplicationInfo, ApplyFolder, apply);
}
DownloadFolder.ClearFolder();
ApplyFolder.Unlock();
}
public void StartUninstall(Action<int, object> apply)
{
apply(3, null);
Thread.Sleep(500);
FileController.RemoveFiles(BeWoPaths.ActualPlanerLocation);
}
}
}

View File

@@ -1,188 +0,0 @@
using BeWoLauncher.PageImp;
using BeWoLauncher.Utils;
using BeWoLauncher.WindowImp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Threading;
namespace BeWoLauncher.Logic
{
public static class ViewController
{
static bool isMainPagePresent = false;
static MainPage MainPage = null;
public enum LauncherPageType
{
Login,
Update,
UpdateInfo1,
UpdateInfo2,
UpdateInfo3,
}
public static LauncherWindow LauncherWindow { get; set; }
public static Dispatcher Dispatcher => LauncherWindow.Dispatcher;
public static void StartView()
{
//ShowPage(LauncherPageType.Login);
ShowPage(LauncherPageType.UpdateInfo1);
}
public static void LoginLoaded(object sender, EventArgs e)
{
var autologin = bool.TryParse(ConfigurationManager.AppSettings.Get("AutoLogin"), out bool c) && c;
if (autologin)
if (sender is LoginPage loginPage)
loginPage.ClickLogin();
}
public static void LoginSuccessful(object sender, EventArgs e)
{
#region confirm demo
#if DEBUG
//if (ConnectionInformation.Tenant == "demo")
//{
// var dlg = new ConfirmDemoDialog();
// dlg.ShowDialog();
//}
#else
if (ConnectionInformation.Tenant == "demo")
{
var dlg = new ConfirmDemoDialog();
dlg.ShowDialog();
}
#endif
#endregion
BeWoPaths.SetAndSaveInstallLocation(((LoginPage)sender).InstallLocation);
ShowPage(LauncherPageType.Update);
}
public static void UpdateSuccessful(object sender, EventArgs e)
{
ProcessController.StartPlanerProcess();
}
public static void UpdateFailed(object sender, EventArgs e)
{
throw new NotImplementedException();
}
public static UserControl GetNewPage(LauncherPageType type)
{
if (type == LauncherPageType.Login)
{
var login = new LoginPage();
login.Loaded += LoginLoaded;
login.LoginSuccessful += LoginSuccessful;
return login;
}
else if (type == LauncherPageType.Update)
{
bool showDelay = bool.TryParse(ConfigurationManager.AppSettings.Get("ShowUpdateDelay"), out bool b) && b;
bool forceUpdate = bool.TryParse(ConfigurationManager.AppSettings.Get("ForceUpdate"), out bool c) && c;
var update = new UpdatePage(showDelay, forceUpdate);
update.UpdateSuccessful += UpdateSuccessful;
update.UpdateFailed += UpdateFailed;
return update;
}
else if (type == LauncherPageType.UpdateInfo1)
{ var update = new UpdateInfo1();
return GetMainPage(update);
}
else if (type == LauncherPageType.UpdateInfo2)
{
var update = new UpdateInfo2();
return GetMainPage(update);
}
else if (type == LauncherPageType.UpdateInfo3)
{
var update = new UpdateInfo3();
return GetMainPage(update);
}
throw new NotImplementedException();
}
public static UserControl GetMainPage(UserControl uc)
{
if (isMainPagePresent)
return uc;
MainPage = new MainPage();
isMainPagePresent = true;
MainPage.contentGrid.Children.Clear();
MainPage.contentGrid.Children.Add(uc);
return MainPage;
}
public static void ShowPage(LauncherPageType type)
{
bool before = isMainPagePresent;
var page = GetNewPage(type);
if(type == LauncherPageType.Login)
{
isMainPagePresent = false;
MainPage = null;
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
LauncherWindow.rootGrid.Children.Clear();
LauncherWindow.rootGrid.Children.Add(page);
});
}
else if(type == LauncherPageType.Update)
{
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
//LauncherWindow.MainPage.contentGrid.Children.Add(page);
});
}
else
{
// Neu Laden
if(!before)
{
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
LauncherWindow.rootGrid.Children.Clear();
LauncherWindow.rootGrid.Children.Add(page);
});
}
// Bereits geladen
else
{
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
MainPage.contentGrid.Children.Clear();
MainPage.contentGrid.Children.Add(page);
});
}
}
}
}
}

View File

@@ -1,86 +0,0 @@
<UserControl x:Class="BeWoLauncher.PageImp.UpdatePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:BeWoLauncher.PageImp"
mc:Ignorable="d" Background="{StaticResource LoginBackground}"
d:DesignHeight="450" d:DesignWidth="800" Loaded="UserControl_Loaded">
<Grid Name="grid_root" >
<StackPanel HorizontalAlignment="Center" >
<Grid Background="{x:Null}" Height="400" Width="600" Visibility="Visible" x:Name="gridUpdate" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="170" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="185" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="pack://application:,,,/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4"
Grid.Column="0" FontSize="10" x:Name="lblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,80,0,0">
<Label x:Name="lblMessage" Content="bewoplaner wird aktualisiert..." Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" />
<Label x:Name="lblSubmessage" Content="Update wird installiert" Foreground="#FF000000" FontSize="12" />
</StackPanel>
<ProgressBar x:Name="proBar1" Grid.Row="3" Grid.ColumnSpan="4" Width="500" Height="20" Minimum="0" Maximum="100" IsIndeterminate="True"/>
<TextBlock x:Name="txtCopyright" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="10" Margin="10,5,0,5" Text="Copyright 2017 | beyondSoft GmbH" Foreground="#FF818181"/>
<TextBlock Grid.Row="7" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,5,12,5">
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="http://www.beyondsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.beyondsoft.de</Hyperlink>
</TextBlock>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
</Grid>
<Rectangle Width="600" Height="400" RenderTransformOrigin="0.5,0.5">
<Rectangle.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.418">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#4CFFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="-1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=gridUpdate}" />
</Rectangle.Fill>
</Rectangle>
</StackPanel>
</Grid>
</UserControl>

View File

@@ -1,147 +0,0 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Deployment.Application;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using BeWoLauncher.ServiceProxy;
using BeWoLauncher.Utils;
using BeWoLauncher.Utils.Update;
using BS.SharedLauncher;
using BS.SharedLauncher.DataContract;
using BS.SharedLauncher.Information;
using Path = System.IO.Path;
namespace BeWoLauncher.PageImp
{
/// <summary>
/// Interaktionslogik für UpdateView.xaml
/// </summary>
public partial class UpdatePage : UserControl
{
public event EventHandler UpdateSuccessful;
public event EventHandler UpdateFailed;
private bool _ShowDelay;
private bool _ForceUpdate;
public UpdatePage(bool showDelay, bool forceUpdate)
{
InitializeComponent();
_ShowDelay = showDelay;
_ForceUpdate = forceUpdate;
//UpdateFileManager.ApplyFileEventHandler += ApplyFile;
//UpdateFileManager.DownloadFileEventHandler += DownloadFile;
}
public string Message
{
get { return lblMessage.Content as string; }
set { lblMessage.Content = value; }
}
public string SubMessage
{
get { return lblSubmessage.Content as string; }
set { lblSubmessage.Content = value; }
}
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo((sender as Hyperlink).NavigateUri.ToString()));
}
private async void startUpdateAsync()
{
//try
//{
// Message = "Update wird vorbereitet...";
// SubMessage = "";
// UpdatePathManager.GetDownloadDirInfo().ClearFolder();
// if (_ForceUpdate)
// UpdatePathManager.GetApplyDirInfo().ClearFolder();
// await showDelay(5000);
// Message = "Update wird heruntergeladen...";
// SubMessage = "";
// await showDelay(1000);
// //UpdateFileManager.DownloadUpdateSync();
// Message = "Update wird installiert...";
// await showDelay(1000);
// //await UpdateFileManager.ApplyUpdate();
// Message = "Update wurde installiert!";
// SubMessage = "Starte BeWoPlaner...";
// await showDelay(1000);
// //UpdateFileManager.UpdateData = null;
// UpdateSuccessful(this, new EventArgs());
// UpdatePathManager.GetDownloadDirInfo().ClearFolder();
// //UpdateFinished(this, null);
//}
//catch (Exception e)
//{
// Message = "Update fehlgeschlagen!";
// SubMessage = string.Empty;
// throw e;
//}
}
private async void startUpdateAsync2()
{
var skipLock = bool.TryParse(ConfigurationManager.AppSettings.Get("SkipLock"), out bool c) && c;
var manager = new UpdateFileManager();
manager.StartUpdate(skipLock);
try
{
}
catch (Exception e)
{
Message = "Update fehlgeschlagen!";
SubMessage = string.Empty;
throw e;
}
}
private async Task showDelay(int millisec)
{
if (_ShowDelay)
await Task.Delay(millisec);
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
double top = (this.ActualHeight - 400) / 3;
this.gridUpdate.Margin = new Thickness(0, top, 0, 0);
//startUpdate();
Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Background, (Action)startUpdateAsync2);
}
}
}

View File

@@ -1,88 +0,0 @@
<UserControl x:Class="BeWoLauncher.PageImp.UpdateInfo1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:BeWoLauncher.PageImp"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="600" >
<UserControl.Resources>
<BorderGapMaskConverter x:Key="BorderGapMaskConverter"/>
<Style TargetType="{x:Type GroupBox}">
<Setter Property="BorderBrush" Value="#D5DFE5" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="6" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="6" />
</Grid.RowDefinitions>
<Border CornerRadius="4" Grid.Row="1" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="4" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="Transparent" Background="{TemplateBinding Background}" />
<Border Name="Header" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2" Grid.Column="1">
<ContentPresenter ContentSource="Header" RecognizesAccessKey="true" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ContentPresenter Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<Border Grid.Row="1" Grid.RowSpan="3" Grid.ColumnSpan="4" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="3">
<Border.OpacityMask>
<MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
<Binding ElementName="Header" Path="ActualWidth" />
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.OpacityMask>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="root" >
<DockPanel Margin="5">
<Label DockPanel.Dock="Top">Sie sind dabei BeWoPlaner zu installieren.</Label>
<!--<StackPanel Orientation="Vertical" Margin="6">
<CheckBox>Desktopverknüpfung erstellen</CheckBox>
<CheckBox>Startmenüverknüpfung erstellen</CheckBox>
</StackPanel>-->
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10,5,0,-2">
<Label>Erforderlicher Festplattenspeicher:</Label>
<Label x:Name="lblErforderlich">10.9</Label>
<Label>GB</Label>
</StackPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10,-2,0,5">
<Label>Verfügbarer Festplattenspeicher: </Label>
<Label x:Name="lblVerfuegbar">20.0</Label>
<Label>GB</Label>
</StackPanel>
<StackPanel DockPanel.Dock="Bottom" VerticalAlignment="Bottom" HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,10,0,0">
<Button Width="70" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0">Abbrechen</Button>
<Button Width="100" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0">Installieren</Button>
</StackPanel>
<GroupBox DockPanel.Dock="Bottom" VerticalAlignment="Bottom" Header="Installationsordner" BorderBrush="#FFADADAD" >
<DockPanel LastChildFill="True">
<Button Click="button_installLoc_Click" DockPanel.Dock="Right" Margin="0,0,0,0" Height="23" ToolTip="Sie müssen einen leeren Ordner auswählen, auf welchen Sie schreibrechte besitzen.">Auswählen</Button>
<TextBox x:Name="txtLoc" Height="23" DockPanel.Dock="Left" Width="Auto" Margin="3,0,3,0" IsReadOnly="True" VerticalContentAlignment="Center" IsEnabled="False"></TextBox>
</DockPanel>
</GroupBox>
</DockPanel>
</Grid>
</UserControl>

View File

@@ -1,59 +0,0 @@
using BeWoLauncher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWoLauncher.PageImp
{
/// <summary>
/// Interaktionslogik für UpdateInfo1.xaml
/// </summary>
public partial class UpdateInfo1 : UserControl
{
public UpdateInfo1()
{
InitializeComponent();
}
public string InstallLocation
{
get
{
return BeWoPaths.LoginSelectionPlanerLocation;
}
set
{
txtLoc.Text = value;
BeWoPaths.LoginSelectionPlanerLocation = value;
}
}
private void button_installLoc_Click(object sender, RoutedEventArgs rea)
{
// https://stackoverflow.com/questions/11624298/how-to-use-openfiledialog-to-select-a-folder
using (var fbd = new System.Windows.Forms.FolderBrowserDialog())
{
fbd.SelectedPath = InstallLocation;
System.Windows.Forms.DialogResult result = fbd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
{
InstallLocation = fbd.SelectedPath;
//BeWoPaths.ChangeLoginSelectedLocation(fbd.SelectedPath);
}
}
}
}
}

View File

@@ -34,5 +34,17 @@ namespace BeWoLauncher.Properties {
this["InstallLocation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool FirstInstallationSuccess {
get {
return ((bool)(this["FirstInstallationSuccess"]));
}
set {
this["FirstInstallationSuccess"] = value;
}
}
}
}

View File

@@ -5,5 +5,8 @@
<Setting Name="InstallLocation" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="FirstInstallationSuccess" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1738,7 +1738,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="..\Ressources\Icons\UserHomeMaleDisabled.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<Image Grid.RowSpan="2" Source="..View\Icons\UserHomeMaleDisabled.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="{Binding Path=FirstName}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock Text="{Binding Path=LastName}" Margin="3,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
@@ -1887,7 +1887,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="..\Ressources\Icons\UserHomeMaleDisabled.png" Margin="0,0,5,0" Height="20" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<Image Grid.RowSpan="2" Source="..\View\Icons\UserHomeMaleDisabled.png" Margin="0,0,5,0" Height="20" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="{Binding Path=FirstName}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock Text="{Binding Path=LastName}" Margin="3,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
@@ -3960,7 +3960,64 @@
<GradientStop Color="#FFFFF9EA" Offset="0.723" />
</LinearGradientBrush>
<Style x:Key="PopUpWindowStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="2" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 10,10 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Bottom">
<ContentPresenter TextElement.FontSize="16" Margin="5,0,0,3" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0" Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" Grid.ColumnSpan="1" Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="TransparentButtonStyle" TargetType="{x:Type Button}">
<Setter Property="VerticalContentAlignment" Value="Center" />

View File

@@ -1,157 +0,0 @@
using BeWoLauncher.ServiceProxy;
using BS.SharedLauncher;
using BS.SharedLauncher.DataContract;
using BS.SharedLauncher.Exceptions;
using BS.SharedLauncher.Extensions;
using BS.SharedLauncher.Information;
using BS.SharedLauncher.Logic;
using BS.SharedLauncher.Update;
using BS.SharedLauncher.Utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Xml.Serialization;
namespace BeWoLauncher.Utils.Update
{
public class UpdateFileManager
{
public DownloadPlanerRequestDC Request { get; set; }
public DownloadPlanerResponseDC Response { get; set; }
public string DownloadZipPath { get; set; }
public string DownloadFolder => BeWoPaths.GetDownloadPath();
public string ApplyFolder => BeWoPaths.GetApplyPath();
public UpdateFileManager()
{
Request = null;
Response = null;
}
public void StartUpdate(bool skipLock)
{
CreateUpdateRequest();
GetUpdateResponse();
if (!Response.HasToDo())
{
return;
}
if (Response.HasToDoNewZip())
{
StartDownload(skipLock);
}
StartApply(skipLock);
DownloadFolder.ClearFolder();
}
private void CreateUpdateRequest()
{
Request = new DownloadPlanerRequestDC();
Request.PlanerRootFolderExists = DownloadFolder.Exists();
if (Request.DownloadFolderExists = DownloadFolder.Exists())
if (!(Request.DownloadFolderIsEmpty = DownloadFolder.IsFolderEmpty()))
Request.DownloadedPackages = FileController.LoadInfos(DownloadFolder);
if (Request.ApplyFolderExists = ApplyFolder.Exists())
if (!(Request.ApplyFolderIsEmpty = ApplyFolder.IsFolderEmpty()))
if (FileController.TryGetPackageInfo(BeWoPaths.GetApplyPackagePath(), out var planer))
Request.ApplyPackage = planer;
}
private void GetUpdateResponse()
{
Response = LauncherServiceFacade.DoDownloadBeWoServiceSync(x => x.Download2(Request));
}
private void StartDownload(bool skiplock)
{
DownloadFolder.CreateFolder();
DownloadFolder.Lock(skiplock);
DownloadZipPath = FileController.GetNewZipPath(BeWoPaths.GetDownloadPath());
FileController.SaveDZip(DownloadZipPath, Response.NewZipData);
FileController.SaveInfo(DownloadZipPath, Response.NewZipInfo);
FileController.SaveInfo(BeWoPaths.GetDownloadPackagePath(), Response.LatestApplicationInfo);
Response.NewZipData = null;
DownloadFolder.Unlock();
}
private void StartApply(bool skiplock)
{
ApplyFolder.CreateFolder();
ApplyFolder.Lock(skiplock);
if (Response.HasToDoDownload2Keep())
{
FileController.ApplyDZip(Response.DownloadFilesToKeep, ApplyFolder);
}
if (Response.HasToDoNewZip())
{
FileController.ApplyDZip(DownloadZipPath, ApplyFolder);
}
if (Response.HasToRemoveFiles)
{
}
// Überschreibe alle lokalen Dateien mit dem Update
//private void ApplyDZip(string path, PlanerPackageInfoDC planer)
//{
//using (ZipArchive archive = ZipFile.OpenRead(path))
//{
// foreach (ZipArchiveEntry entry in archive.Entries)
// {
// var planerFileInfo = PlanerPackage.FindPlanerFile(entry.Name);
// entry.ExtractToFile(ApplyPath.Combine(entry.Name), true);
// }
//}
//}
//// Entferne alte Dateien
//// Überprüfe mit neuer Version Xml
//var applyFiles = Directory.EnumerateFileSystemEntries(ApplyPath);
//foreach (var file in applyFiles)
//{
// var relative = PathUtils.MakeRelativePath(ApplyPath, file);
// if (PlanerPackage.FirstOrDefaultPlanerFile(relative) is object)
// continue;
// if (relative == BeWoPaths.GetLockFileName())
// continue;
// File.Delete(file);
//}
//// Überschreibe Update Version
//File.WriteAllText(BeWoPaths.GetVersionXmlPath(), PlanerVersionXml);
////UnlockApply();
///
throw new NotImplementedException();
}
// RE Auslagern
}
}

View File

@@ -17,7 +17,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="BeWoLauncher/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="BeWoLauncher/View/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />

View File

@@ -20,7 +20,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="pack://application:,,,/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="pack://application:,,,/View/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />

View File

@@ -1,4 +1,5 @@
using BeWoLauncher.Logic;
using BeWoLauncher.Logic.Controller;
using System;
using System.Windows;
using System.Windows.Controls;

View File

@@ -20,7 +20,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="..\Ressources\Icons\bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="pack://application:,,,/View/Icons/bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Grid Grid.Row="1" Margin="0,10,0,0" x:Name="rootGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />

View File

@@ -7,7 +7,7 @@
<GroupBox Style="{StaticResource PopUpWindowStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0">
<Image Source="pack://application:,,,/Icons/ContactCardWebDisabled.png" RenderTransformOrigin="0.5,0.5" Width="Auto" Height="28" Margin="0,0,0,0">
<Image Source="pack://application:,,,/View/Icons/ContactCardWebDisabled.png" RenderTransformOrigin="0.5,0.5" Width="Auto" Height="28" Margin="0,0,0,0">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />

View File

@@ -1,4 +1,5 @@
using BS.SharedLauncher;
using BeWoLauncher.Logic;
using BS.SharedLauncher;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;

View File

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

View File

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 722 B

View File

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 605 B

View File

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

View File

Before

Width:  |  Height:  |  Size: 741 B

After

Width:  |  Height:  |  Size: 741 B

View File

Before

Width:  |  Height:  |  Size: 649 B

After

Width:  |  Height:  |  Size: 649 B

View File

Before

Width:  |  Height:  |  Size: 832 B

After

Width:  |  Height:  |  Size: 832 B

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More