Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
G
GS.Terminal.VisitorSelfService
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
终端组
GS.Terminal.VisitorSelfService
Commits
a74a4562
Commit
a74a4562
authored
Jul 28, 2020
by
姜春辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
视图模型Handler修改为自动加载,不再需要手动注册
parent
341c9132
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
206 additions
and
11 deletions
+206
-11
AuthenticationPageHandler.cs
...isitorSelfService.Logic/Core/AuthenticationPageHandler.cs
+21
-0
Corebase.cs
...gic/GS.Terminal.VisitorSelfService.Logic/Core/Corebase.cs
+51
-0
MenuPageHandler.cs
...Terminal.VisitorSelfService.Logic/Core/MenuPageHandler.cs
+29
-0
GS.Terminal.VisitorSelfService.Logic.csproj
...Service.Logic/GS.Terminal.VisitorSelfService.Logic.csproj
+5
-0
Handlers.cs
...ce/Logic/GS.Terminal.VisitorSelfService.Logic/Handlers.cs
+42
-0
Program.cs
...ice/Logic/GS.Terminal.VisitorSelfService.Logic/Program.cs
+4
-3
Locator.cs
...al.VisitorSelfService/ViewModelView/ViewModels/Locator.cs
+5
-0
ViewModel.cs
...odelView/ViewModels/Pages/AuthenticationPage/ViewModel.cs
+8
-1
ViewModel.cs
...vice/ViewModelView/ViewModels/Pages/MenuPage/ViewModel.cs
+28
-1
Foot.xaml
...Terminal.VisitorSelfService/ViewModelView/Views/Foot.xaml
+3
-3
Index.xaml
...e/ViewModelView/Views/Pages/AuthenticationPage/Index.xaml
+7
-0
Index.xaml
...SelfService/ViewModelView/Views/Pages/MenuPage/Index.xaml
+3
-3
No files found.
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/AuthenticationPageHandler.cs
0 → 100644
View file @
a74a4562
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Core
{
public
class
AuthenticationPageHandler
:
Corebase
<
ViewModels
.
Pages
.
AuthenticationPage
.
ViewModel
>
{
public
override
void
Init
()
{
VM
.
OnExitClick
+=
VM_OnExitClick
;
}
private
void
VM_OnExitClick
()
{
Handlers
.
GetHandler
<
ViewModels
.
Pages
.
MenuPage
.
ViewModel
>()?.
ShowView
();
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/Corebase.cs
0 → 100644
View file @
a74a4562
using
ViewModels
;
using
GS.Terminal.LogicShell.Interface
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Core
{
public
abstract
class
Corebase
{
public
abstract
void
Init
();
private
Locator
_vmLocator
;
protected
Locator
vmLocator
{
get
{
if
(
_vmLocator
==
null
)
_vmLocator
=
Program
.
vmLocator
;
return
_vmLocator
;
}
}
}
public
abstract
class
Corebase
<
VMTYPE
>
:
Corebase
where
VMTYPE
:
IViewModel
{
private
VMTYPE
_VM
;
protected
VMTYPE
VM
{
get
{
if
(
_VM
==
null
)
_VM
=
vmLocator
.
GetViewModel
<
VMTYPE
>();
return
_VM
;
}
}
/// <summary>
/// 打开当前页面
/// </summary>
public
IPopWindowHandler
Open
()
{
return
ThirdAddon
.
LogicShell
.
Open
(
VM
);
}
public
void
ShowView
()
{
ThirdAddon
.
LogicShell
.
ShowView
(
VM
);
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/MenuPageHandler.cs
0 → 100644
View file @
a74a4562
using
GS.Terminal.VisitorSelfService.Logic.ThirdAddon
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Core
{
public
class
MenuPageHandler
:
Corebase
<
ViewModels
.
Pages
.
MenuPage
.
ViewModel
>
{
public
override
void
Init
()
{
VM
.
OnMenuItemClick
+=
VM_OnMenuItemClick
;
}
private
void
VM_OnMenuItemClick
(
ViewModels
.
Pages
.
MenuPage
.
MenuItemType
menuItem
)
{
if
(
menuItem
==
ViewModels
.
Pages
.
MenuPage
.
MenuItemType
.
HasAppointment
)
{
ThirdAddon
.
LogicShell
.
ShowView
(
vmLocator
.
AuthenticationPage
);
}
else
{
}
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/GS.Terminal.VisitorSelfService.Logic.csproj
View file @
a74a4562
...
@@ -92,6 +92,10 @@
...
@@ -92,6 +92,10 @@
<Reference
Include=
"System.Xml"
/>
<Reference
Include=
"System.Xml"
/>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<Compile
Include=
"Core\AuthenticationPageHandler.cs"
/>
<Compile
Include=
"Core\Corebase.cs"
/>
<Compile
Include=
"Core\MenuPageHandler.cs"
/>
<Compile
Include=
"Handlers.cs"
/>
<Compile
Include=
"Program.cs"
/>
<Compile
Include=
"Program.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<Compile
Include=
"ThirdAddon\DeviceManager.cs"
/>
<Compile
Include=
"ThirdAddon\DeviceManager.cs"
/>
...
@@ -119,6 +123,7 @@
...
@@ -119,6 +123,7 @@
<Name>
ViewModels
</Name>
<Name>
ViewModels
</Name>
</ProjectReference>
</ProjectReference>
</ItemGroup>
</ItemGroup>
<ItemGroup
/>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
<Target
Name=
"EnsureNuGetPackageBuildImports"
BeforeTargets=
"PrepareForBuild"
>
<Target
Name=
"EnsureNuGetPackageBuildImports"
BeforeTargets=
"PrepareForBuild"
>
<PropertyGroup>
<PropertyGroup>
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Handlers.cs
0 → 100644
View file @
a74a4562
using
GS.Terminal.LogicShell.Interface
;
using
GS.Terminal.VisitorSelfService.Logic.Core
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Reflection
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic
{
public
class
Handlers
{
private
static
Dictionary
<
Type
,
object
>
handlers
=
new
Dictionary
<
Type
,
object
>();
internal
static
void
Product
()
{
var
current
=
Assembly
.
GetCallingAssembly
();
var
types
=
current
.
GetTypes
();
var
h
=
types
.
Where
(
ss
=>
typeof
(
Corebase
).
IsAssignableFrom
(
ss
)
&&
!
ss
.
Name
.
StartsWith
(
"Corebase"
)).
ToList
();
h
.
ForEach
(
item
=>
{
var
handler
=
(
Corebase
)
Activator
.
CreateInstance
(
item
);
handler
.
Init
();
handlers
.
Add
(
item
.
BaseType
.
GenericTypeArguments
[
0
],
handler
);
});
}
/// <summary>
/// 根据viewmodel获取handler
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
internal
static
Corebase
<
T
>
GetHandler
<
T
>()
where
T
:
IViewModel
{
if
(
handlers
.
TryGetValue
(
typeof
(
T
),
out
object
instance
))
return
(
Corebase
<
T
>)
instance
;
return
null
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Program.cs
View file @
a74a4562
...
@@ -12,19 +12,20 @@ namespace GS.Terminal.VisitorSelfService.Logic
...
@@ -12,19 +12,20 @@ namespace GS.Terminal.VisitorSelfService.Logic
public
class
Program
:
IAddonActivator
public
class
Program
:
IAddonActivator
{
{
internal
static
IAddonContext
_Context
;
internal
static
IAddonContext
_Context
;
internal
static
Locator
_
Locator
;
internal
static
Locator
vm
Locator
;
public
void
Start
(
IAddonContext
Context
)
public
void
Start
(
IAddonContext
Context
)
{
{
_Context
=
Context
;
_Context
=
Context
;
_
Locator
=
new
Locator
();
vm
Locator
=
new
Locator
();
AddonRuntime
.
Instance
.
onRuntimeCompleted
+=
Instance_onRuntimeCompleted
;
AddonRuntime
.
Instance
.
onRuntimeCompleted
+=
Instance_onRuntimeCompleted
;
}
}
private
void
Instance_onRuntimeCompleted
(
object
sender
)
private
void
Instance_onRuntimeCompleted
(
object
sender
)
{
{
ThirdAddon
.
LogicShell
.
ShowView
(
_Locator
.
HistoryMenuPage
);
Handlers
.
Product
();
ThirdAddon
.
LogicShell
.
ShowView
(
vmLocator
.
MenuPage
);
}
}
public
void
Stop
(
IAddonContext
Context
)
public
void
Stop
(
IAddonContext
Context
)
...
...
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Locator.cs
View file @
a74a4562
...
@@ -32,6 +32,11 @@ namespace ViewModels
...
@@ -32,6 +32,11 @@ namespace ViewModels
SimpleIoc
.
Default
.
Register
<
T
>();
SimpleIoc
.
Default
.
Register
<
T
>();
}
}
public
T
GetViewModel
<
T
>()
{
return
SimpleIoc
.
Default
.
GetInstance
<
T
>();
}
public
Foot
Foot
public
Foot
Foot
{
{
get
get
...
...
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Pages/AuthenticationPage/ViewModel.cs
View file @
a74a4562
using
GalaSoft.MvvmLight
;
using
GalaSoft.MvvmLight
;
using
GalaSoft.MvvmLight.Command
;
using
GS.Terminal.LogicShell.Interface
;
using
GS.Terminal.LogicShell.Interface
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
...
@@ -12,9 +13,15 @@ namespace ViewModels.Pages.AuthenticationPage
...
@@ -12,9 +13,15 @@ namespace ViewModels.Pages.AuthenticationPage
{
{
public
string
ViewID
=>
"bbf0b764-4029-4db8-8beb-97b9627a4ac5"
;
public
string
ViewID
=>
"bbf0b764-4029-4db8-8beb-97b9627a4ac5"
;
public
event
Action
OnExitClick
;
public
RelayCommand
ExitCommand
=>
new
RelayCommand
(()
=>
{
OnExitClick
?.
Invoke
();
});
public
void
Reset
()
public
void
Reset
()
{
{
}
}
}
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Pages/MenuPage/ViewModel.cs
View file @
a74a4562
using
GalaSoft.MvvmLight
;
using
GalaSoft.MvvmLight
;
using
GalaSoft.MvvmLight.Command
;
using
GS.Terminal.LogicShell.Interface
;
using
GS.Terminal.LogicShell.Interface
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
...
@@ -8,13 +9,39 @@ using System.Threading.Tasks;
...
@@ -8,13 +9,39 @@ using System.Threading.Tasks;
namespace
ViewModels.Pages.MenuPage
namespace
ViewModels.Pages.MenuPage
{
{
public
delegate
void
OnMenuItemClickDelegate
(
MenuItemType
menuItem
);
public
enum
MenuItemType
{
HasAppointment
,
NoAppointment
}
public
partial
class
ViewModel
:
ViewModelBase
,
IViewModel
public
partial
class
ViewModel
:
ViewModelBase
,
IViewModel
{
{
public
string
ViewID
=>
"31fa8506-2213-44a4-bd07-a68fba474038"
;
public
string
ViewID
=>
"31fa8506-2213-44a4-bd07-a68fba474038"
;
private
int
_TodayPerson
;
public
int
TodayPerson
{
get
{
return
_TodayPerson
;
}
set
{
_TodayPerson
=
value
;
RaisePropertyChanged
(
"TodayPerson"
);
}
}
public
event
OnMenuItemClickDelegate
OnMenuItemClick
;
public
RelayCommand
HasAppointmentCommand
=>
new
RelayCommand
(()
=>
{
OnMenuItemClick
?.
Invoke
(
MenuItemType
.
HasAppointment
);
});
public
RelayCommand
NoAppointmentCommand
=>
new
RelayCommand
(()
=>
{
OnMenuItemClick
?.
Invoke
(
MenuItemType
.
NoAppointment
);
});
public
void
Reset
()
public
void
Reset
()
{
{
}
}
}
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Foot.xaml
View file @
a74a4562
...
@@ -5,10 +5,10 @@
...
@@ -5,10 +5,10 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Views"
xmlns:local="clr-namespace:Views"
mc:Ignorable="d"
mc:Ignorable="d"
d:DesignHeight="45
0" d:DesignWidth="80
0"
d:DesignHeight="45
" d:DesignWidth="108
0"
Title="Foot">
Title="Foot">
<Grid>
<Grid>
<TextBlock Text="设备编号: SYL106" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="24"/>
<TextBlock Text="青岛通软网络科技有限公司" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
</Grid>
</Grid>
</Page>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/AuthenticationPage/Index.xaml
View file @
a74a4562
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
<ResourceDictionary>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style.xaml"/>
<ResourceDictionary Source="Style.xaml"/>
<ResourceDictionary Source="../../Resources/CommonDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ResourceDictionary>
</Page.Resources>
</Page.Resources>
...
@@ -72,6 +73,12 @@
...
@@ -72,6 +73,12 @@
</Grid>
</Grid>
</Grid>
</Grid>
<Button Grid.Row="2" Template="{StaticResource CommonButton}"
Command="{Binding ExitCommand}"
Width="250" Height="60" Content="退出" Foreground="#2a2b2d" FontSize="24">
</Button>
</Grid>
</Grid>
</Grid>
</Grid>
</Page>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/MenuPage/Index.xaml
View file @
a74a4562
...
@@ -26,14 +26,14 @@
...
@@ -26,14 +26,14 @@
</Grid.RowDefinitions>
</Grid.RowDefinitions>
<StackPanel>
<StackPanel>
<TextBlock HorizontalAlignment="Center">
<TextBlock HorizontalAlignment="Center">
<Run Text="
290
" FontSize="80"/>
<Run Text="
{Binding TodayPerson}
" FontSize="80"/>
<Run Text="人" FontSize="14"/>
<Run Text="人" FontSize="14"/>
</TextBlock>
</TextBlock>
<TextBlock Text="今日本机已到访" FontSize="40" HorizontalAlignment="Center"/>
<TextBlock Text="今日本机已到访" FontSize="40" HorizontalAlignment="Center"/>
</StackPanel>
</StackPanel>
<gs:ImageButton
Width="500" Height="500" Grid.Row="1" ImgPath
="/Views;component/Resources/menu_btn_has.png"/>
<gs:ImageButton
Fix Command="{Binding HasAppointmentCommand}" Width="500" Height="500" Grid.Row="1" Image
="/Views;component/Resources/menu_btn_has.png"/>
<Image Grid.Row="2" Source="/Views;component/Resources/menu_or.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Image Grid.Row="2" Source="/Views;component/Resources/menu_or.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<gs:ImageButton
Width="500" Height="500" Grid.Row="3" ImgPath
="/Views;component/Resources/menu_btn_no.png"/>
<gs:ImageButton
Fix Command="{Binding NoAppointmentCommand}" Width="500" Height="500" Grid.Row="3" Image
="/Views;component/Resources/menu_btn_no.png"/>
<Button Style="{StaticResource MenuPage_HistoryButton}"/>
<Button Style="{StaticResource MenuPage_HistoryButton}"/>
</Grid>
</Grid>
</Grid>
</Grid>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment