年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
8.4 KiB

using KGIS.Framework.Core.Services;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.Helper;
using Kingo.Core.Authorize;
using KUI;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Drawing;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using Newtonsoft.Json;
using System.Linq;
namespace JKRJ_Startup
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private string guid = string.Empty;
private Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
public MainWindow()
{
//ListenerHelper.Instance.License(null);
//Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute));
//guid = ((GuidAttribute)guid_attr).Value;
//if (RunIDService.VerifyModel(guid, "4a924103-02dd-4d8d-b3ea-2b26a24d6b4b") || RunIDService.VerifyModel(guid, "6c09e2e7-1b2c-4a2a-b42c-11151ad40519") || RunIDService.VerifyModel(guid, "C6273157-3215-49C1-AFB8-59A3DF96A398") || RunIDService.VerifyModel(guid, "2ef73d4e-6bfd-4b48-b964-a76b75f3b630") || RunIDService.VerifyModel(guid, "7acaaadd-f2b6-4c60-a21e-cc31640e2bd9"))
//{
//}
InitializeComponent();
#region 陕西发布版本
//keyValuePairs.Add("单图斑建库&e8581fc9-fa1e-4a3c-8eca-6ad6d8b0d2bd_DTBJK", "DataDTBJK_DTBJK");
//keyValuePairs.Add("日常变更建库&08716cf2-16e4-445a-8fd6-cb50010eaa61_RCBG", "BuildDB_RCBG");
//keyValuePairs.Add("年度变更建库&08716cf2-16e4-445a-8fd6-cb50010eaa61_NDBG", "BuildDB_NDBG");
#endregion
#region 山西,青海版本
keyValuePairs.Add("图斑预处理&e8581fc9-fa1e-4a3c-8eca-6ad6d8b0d2bd_DTBJK", "DataDTBJK_YCLJK");
keyValuePairs.Add("单图斑建库&e8581fc9-fa1e-4a3c-8eca-6ad6d8b0d2bd_DTBJK", "DataDTBJK_DTBJK");
keyValuePairs.Add("单图斑质检&e8581fc9-fa1e-4a3c-8eca-6ad6d8b0d2bd_DTBJK", "DataDTBJK_WYZS");
#endregion
this.txtSubTitle.Content = KGIS.Framework.Utils.SysConfigsOprator.GetAppsetingValueByKey("SystemName");
int i = 0;
string ShowAllApp = ConfigurationManager.AppSettings.Get("ShowAllApp");
List<LicIDModel> LicModels = JsonConvert.DeserializeObject<List<LicIDModel>>(RunIDService2.Instance.Models);
foreach (var item in keyValuePairs.Keys)
{
string[] pra = item.Split('&');
LicIDModel mod = LicModels.FirstOrDefault(f => f.ID == pra[1]);
string tag = string.Empty;
if (mod != null)
{
if (mod.Models != null)
{
foreach (var subMod in mod.Models)
{
tag += subMod.ID + ";";
}
}
else
{
tag = mod.ID;
}
}
i++;
KFontIconButton btn = new KFontIconButton();
btn.Tag = keyValuePairs[item] + "_" + tag;
btn.Content = pra[0];
btn.IsEnabled = RunIDService2.Instance.Models.Contains(pra[1]);
btn.BorderThickness = new Thickness(0);
btn.Width = 300;
btn.Height = 150;
btn.Margin = new Thickness(40, 20, 40, 20);
btn.FontSize = 38;
btn.Foreground = System.Windows.Media.Brushes.White;
btn.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(240, 240, 128, 128));
btn.MouseOverBackground = new SolidColorBrush(System.Windows.Media.Color.FromArgb(190, 240, 128, 128));
btn.MouseOverBackground = new SolidColorBrush(System.Windows.Media.Color.FromArgb(190, 240, 128, 128));
if (i % 2 == 0)
{
btn.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(240, 135, 206, 235));
btn.MouseOverBackground = new SolidColorBrush(System.Windows.Media.Color.FromArgb(190, 135, 206, 235));
btn.PressedBackground = new SolidColorBrush(System.Windows.Media.Color.FromArgb(190, 135, 206, 235));
}
btn.FIconSize = 0;
btn.Click += Btn_Click;
if (ShowAllApp.ToLower() == "true" || btn.IsEnabled)
Apps.Children.Add(btn);
}
}
#region 标题栏事件
/// <summary>
/// 窗口移动事件
/// </summary>
private void TitleBar_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
int i = 0;
/// <summary>
/// 标题栏双击事件
/// </summary>
private void TitleBar_MouseDown(object sender, MouseButtonEventArgs e)
{
i += 1;
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 300);
timer.Tick += (s, e1) => { timer.IsEnabled = false; i = 0; };
timer.IsEnabled = true;
if (i % 2 == 0)
{
timer.IsEnabled = false;
i = 0;
this.WindowState = this.WindowState == WindowState.Maximized ?
WindowState.Normal : WindowState.Maximized;
}
}
/// <summary>
/// 窗口最小化
/// </summary>
private void btn_min_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized; //设置窗口最小化
}
/// <summary>
/// 窗口最大化与还原
/// </summary>
private void btn_max_Click(object sender, RoutedEventArgs e)
{
if (this.WindowState == WindowState.Maximized)
{
this.WindowState = WindowState.Normal; //设置窗口还原
}
else
{
this.WindowState = WindowState.Maximized; //设置窗口最大化
}
}
/// <summary>
/// 窗口关闭
/// </summary>
private void btn_close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
#endregion 标题栏事件
private void Btn_Click(object sender, RoutedEventArgs e)
{
try
{
KFontIconButton btn = (sender as KFontIconButton);
if (btn.Tag == null) return;
string[] str = btn.Tag.ToString().Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
string args = string.Empty;
for (int i = 1; i < str.Length; i++)
{
args += $" {str[i]}";
}
var psi = new ProcessStartInfo("Kingo." + str[0] + ".exe", $"{args}");
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardError = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
var pes = Process.Start(psi);
this.WindowState = WindowState.Minimized;
this.ShowInTaskbar = false;
var sout = pes.StandardOutput;
while (!sout.EndOfStream)
{
var line = sout.ReadLine();
if (String.IsNullOrEmpty(line)) continue;
}
pes.WaitForExit();
pes.Close();
this.WindowState = WindowState.Normal;
this.ShowInTaskbar = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
public class LicIDModel
{
/// <summary>
///
/// </summary>
public string ID { get; set; }
/// <summary>
///
/// </summary>
public List<LicIDModel> Models { get; set; }
}
}