초기 커밋.
This commit is contained in:
256
DDUtilityApp/LOGPARSER/FrmWorkFlow.cs
Normal file
256
DDUtilityApp/LOGPARSER/FrmWorkFlow.cs
Normal file
@@ -0,0 +1,256 @@
|
||||
using DDUtilityApp.DATA;
|
||||
using DDUtilityApp.LOGPARSER.DATA;
|
||||
using JWH;
|
||||
using JWH.NETWORK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Telerik.WinControls.UI;
|
||||
|
||||
namespace DDUtilityApp.LOGPARSER
|
||||
{
|
||||
|
||||
public partial class FrmWorkFlow : Form
|
||||
{
|
||||
|
||||
#region [ Properties ] ------------------------------------------------
|
||||
|
||||
public CompressInformation CompressInformation { get; set; } = null;
|
||||
|
||||
public EisEquipment Equipment { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region [ FrmWorkFlow ] ------------------------------------------------
|
||||
|
||||
public FrmWorkFlow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.SetLayout();
|
||||
this.SetEventHandler();
|
||||
}
|
||||
|
||||
protected void SetLayout()
|
||||
{
|
||||
this.AllowDrop = true;
|
||||
|
||||
if (GlobalVariable.Instance.WorkflowLocation == "Local") this.rbtnLocal.Checked = true;
|
||||
else this.rbtnRemote.Checked = true;
|
||||
this.tboxLocalPath.Text = GlobalVariable.Instance.WorkflowCompressPath;
|
||||
|
||||
this.tboxWorkflow.Font = new Font("돋움체", 9.0f);
|
||||
this.tboxWorkflow.ScrollBars = ScrollBars.Both;
|
||||
this.tboxWorkflow.WordWrap = false;
|
||||
|
||||
this.gridFile.TableElement.RowHeight = 20;
|
||||
//this.gridFile.AddColumn("ModelID");
|
||||
//this.gridFile.AddColumn("Version");
|
||||
this.gridFile.AddColumn("ModuleName");
|
||||
this.gridFile.AddColumn("Trigger");
|
||||
this.gridFile.AddColumn("Workflow");
|
||||
this.gridFile.AddColumn("Description");
|
||||
//this.gridFile.AddColumn("GemSettingID");
|
||||
}
|
||||
|
||||
protected void SetEventHandler()
|
||||
{
|
||||
this.DragDrop += Control_DragDrop;
|
||||
this.DragEnter += Control_DragEnter;
|
||||
this.Load += FrmWorkFlow_Load;
|
||||
|
||||
this.btnSelectFolder.Click += BtnSelectFolder_Click;
|
||||
this.btnOpenFolder.Click += BtnOpenFolder_Click;
|
||||
|
||||
this.gridFile.CellDoubleClick += GridFile_CellDoubleClick;
|
||||
this.gridFile.DataBindingComplete += GridFile_DataBindingComplete;
|
||||
}
|
||||
|
||||
private void FrmWorkFlow_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.SetWorkflowFiles();
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
switch (keyData)
|
||||
{
|
||||
case Keys.F6:
|
||||
this.gridFile.BestFitColumns(Telerik.WinControls.UI.BestFitColumnMode.DisplayedCells);
|
||||
break;
|
||||
}
|
||||
|
||||
return base.ProcessCmdKey(ref msg, keyData);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region [ Control Events ] --------------------------------------------
|
||||
|
||||
private void Control_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
|
||||
private void Control_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
XLogger.Instance.Info(e);
|
||||
|
||||
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
this.Download(files[0]);
|
||||
}
|
||||
|
||||
private void BtnSelectFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
FolderBrowserDialog dlg = new FolderBrowserDialog();
|
||||
dlg.SelectedPath = this.tboxLocalPath.Text;
|
||||
if (dlg.ShowDialog() != DialogResult.OK) return;
|
||||
|
||||
this.tboxLocalPath.Text =$@"{dlg.SelectedPath}\";
|
||||
}
|
||||
|
||||
private void BtnOpenFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (this.CompressInformation == null) return;
|
||||
Process.Start(this.CompressInformation.ExtractPath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
XLogger.Instance.Fatal(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void GridFile_CellDoubleClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.tboxWorkflow.Clear();
|
||||
if (this.CompressInformation == null) this.Download();
|
||||
if (this.CompressInformation == null) return;
|
||||
|
||||
string fileName = e.Row.Cells[2].Value as string;
|
||||
foreach (FileInfo fileInfo in this.CompressInformation.Files)
|
||||
{
|
||||
if (string.Compare(fileInfo.Name, fileName, true) == 0)
|
||||
{
|
||||
FileStream fileStream = fileInfo.OpenRead();
|
||||
StreamReader reader = new StreamReader(fileStream);
|
||||
this.tboxWorkflow.Text = reader.ReadToEnd();
|
||||
|
||||
reader.Close();
|
||||
fileStream.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
XLogger.Instance.Fatal(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void GridFile_DataBindingComplete(object sender, GridViewBindingCompleteEventArgs e)
|
||||
{
|
||||
this.gridFile.BestFitColumns(BestFitColumnMode.DisplayedCells);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region [ Method ] ----------------------------------------------------
|
||||
|
||||
private void SetWorkflowFiles()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine($"SELECT * ");
|
||||
sb.AppendLine($"FROM WorkflowMapping ");
|
||||
sb.AppendLine($"WHERE ModelID = '{this.Equipment.ModelID}' ");
|
||||
sb.AppendLine($" AND Version = '{this.Equipment.RunningVersion}' ");
|
||||
sb.AppendLine($" AND Workflow IS NOT NULL ");
|
||||
sb.AppendLine($"ORDER BY ModuleName, 'Trigger', Workflow ");
|
||||
DataSet ds = this.Equipment.Server.ExecuteQuery(sb.ToString());
|
||||
|
||||
this.gridFile.DataSource = ds.Tables[0];
|
||||
this.gridFile.GroupDescriptors.Add(new GridGroupByExpression(this.gridFile.Columns[0]));
|
||||
}
|
||||
|
||||
private void Download(string path = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
string downFullName = $@"{GlobalVariable.Instance.WorkflowPath}{this.Equipment.ModelID}_{this.Equipment.RunningVersion}.Compress";
|
||||
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
if (this.rbtnLocal.Checked)
|
||||
{
|
||||
path = $"{this.tboxLocalPath.Text}/{this.Equipment.ModelID}/{this.Equipment.RunningVersion}/ALL.COMPRESS";
|
||||
System.IO.File.Copy(path, downFullName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
string uri = $"ftp://{this.Equipment.Server.FTPAddress}:{this.Equipment.Server.FTPPort}/";
|
||||
string uid = this.Equipment.Server.FTPUserID;
|
||||
string pwd = this.Equipment.Server.FTPPassword;
|
||||
path = $"{this.Equipment.ModelID}/{this.Equipment.RunningVersion}";
|
||||
|
||||
FtpClient client = new FtpClient(uri, uid, pwd);
|
||||
string[] lstName = client.GetList(path);
|
||||
string fullName = string.Empty;
|
||||
foreach (string name in lstName)
|
||||
{
|
||||
if (string.Compare(name, $"ALL.COMPRESS", true) == 0)
|
||||
{
|
||||
fullName = name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(fullName)) return;
|
||||
|
||||
bool result = client.Download($"{path}/ALL.COMPRESS", downFullName);
|
||||
if (result == false) return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
downFullName = $@"{GlobalVariable.Instance.WorkflowPath}{System.IO.Path.GetFileName(path)}";
|
||||
System.IO.File.Copy(path, downFullName, true);
|
||||
}
|
||||
|
||||
this.CompressInformation = new CompressInformation(downFullName);
|
||||
if (this.rbtnLocal.Checked)
|
||||
{
|
||||
GlobalVariable.Instance.WorkflowLocation = "Local";
|
||||
if (!string.IsNullOrEmpty(this.tboxLocalPath.Text)) GlobalVariable.Instance.WorkflowCompressPath = this.tboxLocalPath.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVariable.Instance.WorkflowLocation = "Remote";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
XLogger.Instance.Fatal(ex, true);
|
||||
}
|
||||
finally
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user