Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
        }