public static List <object> FunctionExec(string filename) { List <object> arguman = new List <object>(); string koddosyasi = Application.StartupPath + "\\FileParser.xcs"; if (File.Exists(koddosyasi)) { string code = ""; using (StreamReader reader = new StreamReader(new FileStream(koddosyasi, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.GetEncoding("windows-1254"))) { code = reader.ReadToEnd().Trim(); } Object[] requiredAssemblies = new Object[] { }; dynamic classRef; try { classRef = ReflectionHelper.FunctionExec(code, "HidromasOzel.FileParser", requiredAssemblies); //------------------- // If the compilation process returned an error, then show to the user all errors if (classRef is CompilerErrorCollection) { StringBuilder sberror = new StringBuilder(); foreach (CompilerError error in (CompilerErrorCollection)classRef) { sberror.AppendLine(string.Format("{0}:{1} {2} {3}", error.Line, error.Column, error.ErrorNumber, error.ErrorText)); } Logger.V(sberror.ToString()); return(arguman); } arguman = classRef.DosyaTuru(Path.GetFileNameWithoutExtension(filename), AppSettingHelper.GetConnectionString()); } catch (Exception ex) { // If something very bad happened then throw it //MessageBox.Show(ex.Message); Logger.E(string.Concat("Prosedür yürütme hatasi:", ex.Message, ",Detay:", ex.StackTrace)); return(arguman); } } else { using (StreamWriter wr = new StreamWriter(new FileStream(koddosyasi, FileMode.Create, FileAccess.Write, FileShare.Write), Encoding.GetEncoding("windows-1254"))) { wr.Write(ReflectionHelper.DosyaIcerik("FileManager.FileParser.xcs")); wr.Flush(); wr.Close(); } //FileParser ozel = new FileParser(); //ozel.DosyaTuru(Path.GetFileNameWithoutExtension(filename), AppSettingHelper.GetConnectionString()); } return(arguman); }
private void timerJop_Tick(object sender, EventArgs e) { timerJop.Enabled = false; btnGonder.Enabled = false; Dosyalar(); using (UnitOfWork wrk = new UnitOfWork()) { bool mailsend = AppSettingHelper.Default.SendMail; XPCollection <PdfFileInfo> allfiles = new XPCollection <PdfFileInfo>(wrk, CriteriaOperator.Parse("Aktarim=?", 0), new SortProperty[] { new SortProperty() { Property = "OID", PropertyName = "Oid", Direction = DevExpress.Xpo.DB.SortingDirection.Descending } }); allfiles.TopReturnedObjects = 100; if (allfiles.Count > 0) { FTPFactory ftp = FTPFactory.NewInstince(); Logger.I(allfiles.Count + " adet dosya aktarılacak."); using (OraHelper ora = new OraHelper()) { foreach (PdfFileInfo f in allfiles) { object objIds = null; if (f.FileType == PdfFileType.Bilinmiyor) { FileParser ozel = new FileParser(Path.GetFileNameWithoutExtension(f.FullName), AppSettingHelper.GetConnectionString()); f.FileType = ozel.FileType; f.RelationId = ozel.RelationId; f.RelationObject = ozel.RelationObject; } if (f.FileType == PdfFileType.Bilinmiyor || f.FileType == PdfFileType.Diger) { Logger.I("Dosya hatalı! Eksik parametre:" + f.Name); f.UploadMsg = "Dosya türü bilinmiyor:" + f.Name; f.Aktarim = AktarimDurumu.Bekliyor; f.Save(); continue; } #region İptal /*else if (f.FileType == PdfFileType.UrunAgacKod) * { * f.UrunAgacRevizyonKodu = PDFExpression.RevizyonNumarasi(f.Name); * * objIds = ora.ExecuteScalar(string.Format("SELECT U.BOM_M_ID FROM UYUMSOFT.INVD_BRANCH_ITEM B INNER JOIN UYUMSOFT.INVD_ITEM M ON B.ITEM_ID = M.ITEM_ID INNER JOIN UYUMSOFT.PRDD_BOM_M U ON B.ITEM_ID = U.ITEM_ID WHERE B.BRANCH_ID = '{0}' AND B.CO_ID = '{1}' AND M.ITEM_CODE = '{2}' AND replace(replace(U.ALTERNATIVE_NO, '-', ''),'_','') = '{3}'", Properties.Settings.Default.branchid, Properties.Settings.Default.coid, f.StokKodu, f.UrunAgacRevizyonKodu), null); * if (objIds != null) * { * relationId = Convert.ToInt32(objIds); * } * else * { * Utility.WriteTrace("Ürün ağaç kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu); * f.UploadMsg = "Ürün ağaç kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu; * f.Aktarim = AktarimDurumu.RelationIdYok; * f.Save(); * continue; * } * } * else if (f.FileType == PdfFileType.RotaKod) * { * f.UrunAgacRevizyonKodu = PDFExpression.RevizyonNumarasi(f.Name); * f.OperasyonNo = PDFExpression.OperasyonSiraNo(f.Name); * f.OperasyonKodu = PDFExpression.OperasyonKod(f.Name); * * if (f.OperasyonNo > 0) * { * objIds = ora.ExecuteScalar(string.Format("SELECT D.PRODUCT_ROUTE_D_ID FROM UYUMSOFT.INVD_BRANCH_ITEM B INNER JOIN UYUMSOFT.INVD_ITEM M ON B.ITEM_ID = M.ITEM_ID INNER JOIN UYUMSOFT.PRDD_PRODUCT_ROUTE_M R ON R.ITEM_ID = M.ITEM_ID INNER JOIN UYUMSOFT.PRDD_PRODUCT_ROUTE_D D ON R.PRODUCT_ROUTE_M_ID = D.PRODUCT_ROUTE_M_ID INNER JOIN UYUMSOFT.PRDD_OPERATION O ON D.OPERATION_ID = O.OPERATION_ID WHERE B.BRANCH_ID = '{0}' AND B.CO_ID = '{1}' AND M.ITEM_CODE = '{2}' AND replace(replace(R.ALTERNATIVE_NO, '-', ''),'_','') = '{3}' AND O.OPERATION_CODE = '{4}' AND D.OPERATION_NO = {5} AND ROWNUM = 1", Properties.Settings.Default.branchid, Properties.Settings.Default.coid, f.StokKodu, f.UrunAgacRevizyonKodu, f.OperasyonKodu, f.OperasyonNo), null); * } * else * { * f.UrunAgacRevizyonKodu = PDFExpression.RotaRevizyonNumarasi(f.Name); * objIds = ora.ExecuteScalar(string.Format("SELECT R.PRODUCT_ROUTE_M_ID FROM UYUMSOFT.INVD_BRANCH_ITEM B INNER JOIN UYUMSOFT.INVD_ITEM M ON B.ITEM_ID = M.ITEM_ID INNER JOIN UYUMSOFT.PRDD_PRODUCT_ROUTE_M R ON R.ITEM_ID = M.ITEM_ID WHERE B.BRANCH_ID = '{0}' AND B.CO_ID = '{1}' AND M.ITEM_CODE = '{2}' AND replace(replace(R.ALTERNATIVE_NO, '-', ''),'_','') = '{3}' AND ROWNUM = 1", Properties.Settings.Default.branchid, Properties.Settings.Default.coid, f.StokKodu, f.UrunAgacRevizyonKodu), null); * } * if (objIds != null) * { * relationId = Convert.ToInt32(objIds); * } * else * { * Utility.WriteTrace("Ürün rota kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu); * f.UploadMsg = "Ürün rota kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu; * f.Aktarim = AktarimDurumu.RelationIdYok; * f.Save(); * continue; * } * } * else if (f.FileType == PdfFileType.IstasyonKod) * { * objIds = ora.ExecuteScalar(string.Format("SELECT WSTATION_ID FROM UYUMSOFT.PRDD_WSTATION WHERE BRANCH_ID = '{0}' AND CO_ID = '{1}' AND WSTATION_CODE = '{2}'", Properties.Settings.Default.branchid, Properties.Settings.Default.coid, f.StokKodu), null); * if (objIds != null) * { * relationId = Convert.ToInt32(objIds); * } * else * { * Utility.WriteTrace("Ürün ağaç kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu); * f.UploadMsg = "Ürün ağaç kodu bulunamadı:" + f.StokKodu + "," + f.UrunAgacRevizyonKodu; * f.Aktarim = AktarimDurumu.RelationIdYok; * f.Save(); * continue; * } * }*/ #endregion if (f.RelationId > 0) { try { Logger.I("Dosya kopyalanıyor:" + f.FullName + " to " + f.Name); //SaveACopyfileToServer(f.FullName, string.Concat(Properties.Settings.Default.hedefklasor, "\\", f.Name)); //SaveACopyfileToServer(f.FullName, f.Name); //ftp.uploadwithupdate(f.FullName); //long size = ftp.getFileSize(f.Name); //if (size > 0) // ftp.deleteRemoteFile(f.Name); var fx = new FileInfo(f.FullName); fx.Attributes = FileAttributes.Normal; fx.IsReadOnly = false; if (!ftp.upload(f.FullName)) { Logger.I("Dosya klasore kopyalanamadı:" + f.FullName); f.UploadMsg = "Dosya klasore kopyalanamadı"; f.Aktarim = AktarimDurumu.Kopyalanamadi; f.Save(); continue; } //try //{ // File.Copy(f.FullName, string.Concat(Properties.Settings.Default.hedefklasor, "\\", f.Name), true); //} //catch (IOException _ioexc) //{ // Logger.I("Dosya klasore kopyalanamadı:" + _ioexc.Message); // f.UploadMsg = "Dosya klasore kopyalanamadı:" + _ioexc.Message; // f.Aktarim = AktarimDurumu.Kopyalanamadi; // f.Save(); // continue; //} } catch (IOException io) { Logger.I("Dosya klasore kopyalanamadı:" + io.Message + ",detay" + io.StackTrace); f.UploadMsg = "Dosya klasore kopyalanamadı:" + io.Message; f.Aktarim = AktarimDurumu.Kopyalanamadi; f.Save(); continue; } catch (Exception exc) { Logger.I("Dosya klasore kopyalanamadı:" + exc.Message + ",detay" + exc.StackTrace); f.UploadMsg = "Dosya klasore kopyalanamadı:" + exc.Message; f.Aktarim = AktarimDurumu.Kopyalanamadi; f.Save(); continue; } try { Logger.I("Dosya siliniyor:" + f.FullName); File.Delete(f.FullName); f.IsDelete = true; } catch (IOException io) { f.IsDelete = false; Logger.E("Dosya silinemedi:" + io.Message); } catch (Exception exc) { f.IsDelete = false; Logger.E("Dosya silinemedi:" + exc.Message); } } //if (File.Exists(string.Concat(Properties.Settings.Default.hedefklasor, "\\", f.Name))) if (ftp.getFileSize(f.Name) > 0) { ora.DeleteRecord(f); } int uploadFileId = ora.InsertRecord(f); if (uploadFileId <= 0) { Logger.W("Veritabanına yazılamadı!" + f.Name); f.UploadMsg = "Veritabanına yazılamadı!"; f.Aktarim = AktarimDurumu.Kaydedilemedi; f.Save(); } else { try { if (mailsend) { MailHelper.MailSend(f.Name); f.IsMailSend = true; } } catch (Exception exc) { f.IsMailSend = false; f.MailMsg = exc.Message; } f.IsUploaded = true; f.UploadFileId = uploadFileId; f.UploadMsg = string.Format("{0} aktarıldı.", uploadFileId); f.Aktarim = AktarimDurumu.Aktarildi; f.Save(); } } } ftp.close(); ftp = null; wrk.CommitChanges(); Dosyalar(); } else { Logger.I("Aktarılacak dosya yok."); //MailHelper.MailSend("TTTTTTTT"); } } btnGonder.Enabled = true; timerJop.Enabled = true; }