INT_PT002/INT_PT002/DialogForms/DialogFormProgressBar.cs

188 lines
6.2 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using INT_PT002.DataStore;
namespace INT_PT002.DialogForms
{
public partial class DialogFormProgressBar : Form
{
#region Field
private int Check;
private string USBPath = "";
private string UpdateFilePath = "";
private string OldFilePath = "";
private string RemoveFolderPath = "";
private Define.E_LanguageID m_Language;
#endregion
#region Constructor
public DialogFormProgressBar()
{
InitializeComponent();
}
public DialogFormProgressBar(int code, Define.E_LanguageID language)
{
InitializeComponent();
this.smartGroupBox1.Text = "";
this.labelMessage1.Text = "";
this.labelMessage2.Text = "";
this.Language = language;
if (language == Define.E_LanguageID.Korean)
{
#region 한글
switch (code)
{
case 1:
this.smartGroupBox1.Text = "Update";
this.labelMessage1.Text = "업데이트 중...";
this.labelMessage2.Text = "USB를 본체에서 분리하지 마십시오.";
break;
case 2:
this.smartGroupBox1.Text = "";
this.labelMessage1.Text = "";
this.labelMessage2.Text = "";
break;
default:
this.smartGroupBox1.Text = "Error 99";
this.labelMessage1.Text = "제조사에 문의하세요";
this.labelMessage2.Text = "";
break;
}
#endregion
}
else if (language == Define.E_LanguageID.English)
{
#region 영문
switch (code)
{
case 1:
this.smartGroupBox1.Text = "Update";
this.labelMessage1.Text = "Updating...";
this.labelMessage2.Text = "Do not remove the USB from the device.";
break;
case 2:
this.smartGroupBox1.Text = "";
this.labelMessage1.Text = "";
this.labelMessage2.Text = "";
break;
default:
this.smartGroupBox1.Text = "Error 99";
this.labelMessage1.Text = "Please contact a manufacturer";
break;
}
#endregion
}
else
{
}
}
#endregion
#region Property
public Define.E_LanguageID Language
{
get { return this.m_Language; }
set { this.m_Language = value; }
}
#endregion
#region Method
private void ProgramUpdate()
{
FileInfo[] newFiles;
DirectoryInfo directoryFolderUpdateFiles = new DirectoryInfo(this.UpdateFilePath);
if (directoryFolderUpdateFiles.Exists == false)
directoryFolderUpdateFiles.Create();
this.Check = 0;
this.UpdateFilePath = this.USBPath + "UpdateFiles\\";
this.OldFilePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\";
if (this.OldFilePath.StartsWith("\\F") == true)
this.RemoveFolderPath = "Flash Disk\\RemoveFile\\";
else
this.RemoveFolderPath = "SD Card\\RemoveFile\\";
newFiles = directoryFolderUpdateFiles.GetFiles();
this.progressBarUpdate.Value += 20;
this.TreatmentRemoveOldFile();
this.progressBarUpdate.Value += 20;
this.TreatmentCopyNewFile(newFiles);
this.progressBarUpdate.Value += 100;
this.UpdateLabelStatus(Language);
}
private void TreatmentRemoveOldFile()
{
bool removeFolderCheck = false;
FileInfo[] oldFiles;
FileInfo[] removeFiles;
DirectoryInfo directoryFolderRun = new DirectoryInfo(this.OldFilePath);
DirectoryInfo directoryFolderRemove = new DirectoryInfo(this.RemoveFolderPath);
removeFolderCheck = directoryFolderRemove.Exists;
oldFiles = directoryFolderRun.GetFiles();
if (removeFolderCheck == false)
directoryFolderRemove.Create();
//else
//{
// removeFiles = directoryFolderRemove.GetFiles();
// foreach (FileInfo file in removeFiles)
// file.Delete();
//}
foreach (FileInfo subFile in oldFiles)
subFile.MoveTo(RemoveFolderPath + DateTime.Now.ToString("yyyyMMddHHmmss") + subFile.Name.ToString());
this.progressBarUpdate.Value += 20;
}
private void TreatmentCopyNewFile(FileInfo[] newFile)
{
// 새 파일 복사
foreach (FileInfo subFile in newFile)
subFile.CopyTo(this.OldFilePath + subFile.Name.ToString());
this.progressBarUpdate.Value += 20;
}
private void UpdateLabelStatus(Define.E_LanguageID language)
{
this.progressBarUpdate.Visible = false;
switch (language)
{
case Define.E_LanguageID.Korean:
this.labelMessage1.Text = "프로그램 업데이트 완료";
this.labelMessage2.Text = "전원을 끄고 다시 켜주세요";
break;
case Define.E_LanguageID.English:
this.labelMessage1.Text = "Program update complete";
this.labelMessage2.Text = "Reset the system";
break;
default:
break;
}
this.Refresh();
}
#endregion
}
}