private void LoadFIle(string path) { grid.DataSource = null; var files = Directory.GetFiles(path, "*.psd", SearchOption.AllDirectories); IList <VaildateArrowCodeVM> psdFileList = new List <VaildateArrowCodeVM>(); psdFileList.Clear(); var idx = 0; foreach (var file in files) { var item = new VaildateArrowCodeVM(); item.Index = ++idx; item.FileName = file; var patternId = file.Substring(file.LastIndexOf("\\") + 1); if (patternId.Contains(".psd")) { item.Pattern_Id = patternId.Replace(".psd", string.Empty); } else if (patternId.Contains(".PSD")) { item.Pattern_Id = patternId.Replace(".PSD", string.Empty); } item.ILS_Type = GetILSType(file); if (item.ILS_Type == null) { item.ResultMessage = "파일명 오류"; } psdFileList.Add(item); } var copyTable = ConvertListToDataTable(psdFileList); grid.DataSource = copyTable; }
private void ValidateArrowCode(int idx) { var rows = grid.Rows.Cast <DataGridViewRow>().ToList(); var row = rows[idx].DataBoundItem as DataRowView; var copyVm = new VaildateArrowCodeVM(); CopyProperties(row, copyVm); if (copyVm == null) { return; } if (copyVm.ILS_Type == null) { return; } ReadPsd(copyVm); }
private void ReadPsd(VaildateArrowCodeVM vm) { var psdFullPath = vm.FileName; if (File.Exists(psdFullPath) == false) { return; } var fileInfo = new FileInfo(psdFullPath); var fileName = fileInfo.Name; var pos = fileInfo.Name.LastIndexOf("."); if (pos < 0) { return; } var bw = new BackgroundWorker(); bw.DoWork += (s, e) => { try { _psdReader.ReadFile(psdFullPath); } catch (Exception ex) { e.Result = ex.ToString(); } }; bw.RunWorkerCompleted += (s, e) => { vm.ResultMessage = e.Result as string; var list = _psdReader.GetList(); if (vm != null) { IEnumerable <PsdLayerVM> arrowCodeList; if (vm.ILS_Type != "CE") { arrowCodeList = list.Where(x => x.Name.Contains("Arrow_")); } else { arrowCodeList = list.Where(x => x.Name.Contains("d0")); } var arrowListTable = grid.DataSource as DataTable; var width = _psdReader.FileSectionWidth; var height = _psdReader.FileSectionHeight; vm.Arrow_Id = string.Format("Width:{0} X Height:{1}", width, height); var patternId = arrowListTable.Rows.Cast <DataRow>().Where(x => x["pattern_id"].ToString() == vm.Pattern_Id).FirstOrDefault(); if (patternId == null) { return; } patternId["ResultMessage"] = vm.Arrow_Id; foreach (var arrowCode in arrowCodeList) { var arrowCodeName = arrowCode.Name; if (vm.ILS_Type != "CE") { arrowCodeName = arrowCodeName.Replace("Arrow_", string.Empty); } else { arrowCodeName = arrowCodeName.Replace("_AI", string.Empty); } var item = arrowListTable.NewRow(); foreach (var property in vm.GetType().GetProperties()) { if (property.Name != "Arrow_Id") { item[property.Name] = property.GetValue(vm, null); } else { item[property.Name] = arrowCodeName; item["ResultMessage"] = ""; } } arrowListTable.Rows.Add(item); } var table = gridExcel.DataSource as DataTable; var patternIdList = table.Rows.Cast <DataRow>().Where(x => vm.Pattern_Id.Equals(x["pattern_id"].ToString(), StringComparison.CurrentCultureIgnoreCase)); if (patternIdList.Count() > 0) { foreach (var serverItem in patternIdList) { var isExist = arrowListTable.Rows.Cast <DataRow>().Where(x => x["arrow_id"].ToString().Equals(serverItem["arrow_id"].ToString(), StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); if (isExist != null) { isExist["Result"] = true; patternId["Result"] = true; } else { patternId["Result"] = false; } } } if (m_psdCnt - 1 > m_rowIdx) { m_rowIdx++; ValidateArrowCode(m_rowIdx); return; } else { arrowListTable.DefaultView.Sort = "[Index]"; arrowListTable.AcceptChanges(); btnValidateCode.Enabled = true; } } }; bw.RunWorkerAsync(); btnValidateCode.Enabled = false; }