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);
        }
示例#2
0
        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;
        }