Ejemplo n.º 1
0
        public void WriteToCyberPlan <T>(bool mode_all, string codice_like, string filtro, bool delete, string option) where T : Item, new()
        {
            Item.ResetMailMessage();
            string startedAt     = DateTime.Now.ToString();
            string message_error = "Command started at " + startedAt + "  " +
                                   "\n Parameters: mode_all=" + mode_all + ", codice_like=" + codice_like + ", filtro=" + filtro + ", delete=" + delete + ", option=" + option + "\n\n";

            _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " --- started at " + startedAt);
            T tmp = new T();

            _logger.Info("Oggetto: " + typeof(T).ToString().PadRight(60) + " su tabella " + tmp._CP_tabella);
            DBHelper2 cm = DBHelper2.getCyberDBHelper();

            if (delete)
            {
                DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp.GetDeletedAllQuery());
                _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " ---   deleting ended at " + DateTime.Now.ToString());
                return;
            }

            //if (string.IsNullOrWhiteSpace(codice_like))
            //{
            //    codice_like = "%";
            //}

            //string qry = tmp.GetSelectQuery(mode_all, _libreria_dossier+"TEST", codice_like, filtro);

            _logger.Info("Oggetto: " + typeof(T).ToString().PadRight(60) + " Disab Blocco chifra suffisso TEST a " + _libreria_dossier);
            string qry = tmp.GetSelectQuery(mode_all, _libreria_dossier, codice_like, filtro);


            DbDataReader dtr = GetReaderSelectCommand(qry);

            object[] row = new object[dtr.FieldCount];

            int i = 0;
            int j = 0;

            while (dtr.Read())
            {
                //x debug
                //if (i==34529)
                //{
                //    _logger.Info("i=" + i.ToString() );

                //}

                i++;
                j++;
                dtr.GetValues(row);
                //tmp.Init__AddRow(row);
                try
                {
                    tmp.Init(row);
                }
                catch (Exception ex)
                {
                    _logger.Info("I=" + i.ToString() + "Exception: " + ex.Message);
                }

                try
                {
                    tmp.AddCyberRow();//tmp.GetRow(row);
                }
                catch (Exception ex)
                {
                    _logger.Info(ex.Message);
                }

                if (j % 1000 == 0)
                {
                    //int res= DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp_qry);
                    int res = DBHelper2.EseguiSuDBCyberPlan_Bulk(ref cm, tmp._CP_tabella, Item._dataTable);
                    _logger.Info(i + " items... [" + tmp.GetID() + "]");
                    j = 0;
                }
            }
            int added = tmp.AddLastCyberRows();

            if (j > 0 || added > 0)
            {
                //DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp_qry);
                int res = DBHelper2.EseguiSuDBCyberPlan_Bulk(ref cm, tmp._CP_tabella, Item._dataTable);
                _logger.Info(i + added + " items [last= " + tmp.GetID() + "]");
            }
            tmp.DoLastAction(ref cm, this);
            dtr.Close();

            //if (thereIsMessage)
            //{
            //    Utils.SendMail("*****@*****.**", "*****@*****.**", message_error);
            //    //Utils.SendMail("*****@*****.**", "[email protected],[email protected]", message_error);
            //}

            _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " ---   ended at " + DateTime.Now.ToString());
        }