174 lines
6.6 KiB
C#
174 lines
6.6 KiB
C#
using DevExpress.XtraEditors;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraTreeList;
|
|
using Million;
|
|
using Million.SaveData;
|
|
using Million.FileDBManagement;
|
|
using System.Data.Common;
|
|
using Million.DbManagement;
|
|
|
|
namespace Million.HunterSubForm
|
|
{
|
|
public partial class SavedResultViewerForm : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
private List<SavedResultData> savedResultDatas;
|
|
|
|
// Main 폼의 SaveResultData
|
|
private MainForm _mainForm;
|
|
|
|
public SavedResultViewerForm(MainForm mainForm)
|
|
{
|
|
InitializeComponent();
|
|
_mainForm = mainForm;
|
|
InitForm();
|
|
}
|
|
|
|
private void InitForm()
|
|
{
|
|
// 리스트 초기화
|
|
savedResultDatas?.Clear();
|
|
savedResultDatas = null;
|
|
savedResultDatas = new List<SavedResultData>();
|
|
|
|
|
|
// 저장된 파일에서 결과 정보 데이터 가져오기
|
|
// 예외처리
|
|
// 폴더 없으면 파일 생성
|
|
var directoryInfo = new DirectoryInfo(CommonProperty.SaveProgramDirecotryPath);
|
|
if (!directoryInfo.Exists)
|
|
{
|
|
directoryInfo.Create();
|
|
return;
|
|
}
|
|
|
|
// 결과 데이터 정보 가져오기
|
|
savedResultDatas = DBConnection.QueryGetExcuter_SavedResultData();
|
|
|
|
|
|
//foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList()
|
|
// .FindAll(item => item.Contains(CommonProperty.InfoExtend)))
|
|
//{
|
|
// var savedResult = FileManager.LoadResultDataInfoFromFile(filePath);
|
|
// savedResult.SavedInfoDataPath = filePath;
|
|
// savedResult.SavedResultDataPath =
|
|
// filePath.Replace(CommonProperty.InfoExtend, CommonProperty.DataExtend);
|
|
// savedResult.SavedResultAnalysisDataPath =
|
|
// filePath.Replace(CommonProperty.InfoExtend, CommonProperty.AnalysisExtendFolder);
|
|
// savedResultDatas.Add(savedResult);
|
|
//}
|
|
|
|
// 트리 리스트에 추가
|
|
treeList_SavedResultData.DataSource = savedResultDatas;
|
|
treeList_SavedResultData.RefreshDataSource();
|
|
}
|
|
|
|
// 정보 불러오기 버튼 클릭
|
|
private void simpleButton_SavedResultDataLoad_Click(object sender, EventArgs e)
|
|
{
|
|
// 저장된 데이터 정보 불러오기
|
|
InitForm();
|
|
}
|
|
|
|
|
|
// 마우스 클릭 시 이벤트 처리
|
|
private void treeList_SavedResultData_MouseClick(object sender, MouseEventArgs e)
|
|
{
|
|
var treeList = sender as TreeList;
|
|
|
|
if (treeList == null) return;
|
|
|
|
var hitInfo = treeList.CalcHitInfo(e.Location);
|
|
|
|
if (hitInfo.HitInfoType != HitInfoType.Cell) return;
|
|
|
|
var selectedResultData = (SavedResultData)treeList.GetDataRecordByNode(hitInfo.Node);
|
|
|
|
// 시간 데이터 추가
|
|
textEdit_StartDateTime.Text = selectedResultData.StartDateTime.Date.ToString();
|
|
textEdit_EndDateTime.Text = selectedResultData.EndDateTime.Date.ToString();
|
|
textEdit_SavedDateTime.Text = selectedResultData.SavedDateTime.Date.ToString();
|
|
textEdit_BuyRegularExpression.Text = selectedResultData.BuyRegularExpression;
|
|
textEdit_SellRegularExpression.Text = selectedResultData.SellRegularExpression;
|
|
|
|
// Buy/Sell 리스트에 데이터 추가
|
|
treeList_BuySetupList.DataSource = selectedResultData.BuySetupList;
|
|
treeList_SellSetupList.DataSource = selectedResultData.SellSetupList;
|
|
treeList_BuySetupList.RefreshDataSource();
|
|
treeList_SellSetupList.RefreshDataSource();
|
|
|
|
|
|
treeList_AnalysisResultData.DataSource = null;
|
|
var data = new List<int>();
|
|
data.Add(selectedResultData.Id);
|
|
treeList_AnalysisResultData.DataSource = DBConnection.QueryGetExcuter_SavedAnalysisData(data);
|
|
|
|
// 분석 데이터 정보 파일 항목 불러오기(.data)
|
|
// 폴더 검사
|
|
//if (Directory.Exists(selectedResultData.SavedResultAnalysisDataPath))
|
|
//{
|
|
// var fileList = Directory.GetFiles(selectedResultData.SavedResultAnalysisDataPath,
|
|
// "*info");
|
|
|
|
// var savedAnalysisDataList = new List<SavedAnalysisData>();
|
|
|
|
// foreach (var filePath in fileList)
|
|
// {
|
|
// var savedSnalysisData = FileManager.LoadResultAnalysisDataInfoFromFile(filePath);
|
|
// savedAnalysisDataList.Add(savedSnalysisData);
|
|
// }
|
|
|
|
// treeList_AnalysisResultData.DataSource = savedAnalysisDataList;
|
|
//}
|
|
|
|
treeList_AnalysisResultData.RefreshDataSource();
|
|
}
|
|
|
|
// 마우스 더블 클릭 시 이벤트 처리
|
|
private void treeList_SavedResultData_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
{
|
|
var treeList = sender as TreeList;
|
|
|
|
if (treeList == null) return;
|
|
|
|
var hitInfo = treeList.CalcHitInfo(e.Location);
|
|
|
|
if (hitInfo.HitInfoType != HitInfoType.Cell) return;
|
|
|
|
var selectedResultData = (SavedResultData)treeList.GetDataRecordByNode(hitInfo.Node);
|
|
|
|
//Main 폼의 SaveResultData 초기화
|
|
_mainForm._saveResultData = null;
|
|
//Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음)
|
|
_mainForm._saveResultData = selectedResultData.Clone();
|
|
|
|
_mainForm._saveResultData.SearchResultList =
|
|
FileManager.LoadResultDataFromFile(selectedResultData.SavedResultDataPath);
|
|
|
|
_mainForm._saveResultData.SavedInfoDataPath = selectedResultData.SavedInfoDataPath;
|
|
_mainForm._saveResultData.SavedResultDataPath = selectedResultData.SavedResultDataPath;
|
|
_mainForm._saveResultData.SavedResultAnalysisDataPath =
|
|
selectedResultData.SavedResultAnalysisDataPath;
|
|
|
|
// 데이터가 있는 경우 버튼 색 변경
|
|
if (_mainForm._saveResultData.SearchResultList != null)
|
|
{
|
|
_mainForm.simpleButton_ViewResultData.Appearance.BackColor =
|
|
Color.FromArgb(128, 128, 255);
|
|
}
|
|
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
}
|
|
|
|
}
|
|
} |