private static void CheckScrapLoadForUpdates()
 {
     var dsetZavacs = _dB.ScrapLoad();
     if (dsetZavacs.Tables.Count == 0 || dsetZavacs.Tables[0].Rows.Count == 0) return;
     var start = GetDateTimeValueAsMinDefault(dsetZavacs.Tables[0].Rows[0]["Time_Start"].ToString());
     var end = GetDateTimeValueAsMaxDefault(dsetZavacs.Tables[0].Rows[0]["Time_End"].ToString());
     var ves = GetIntValue(dsetZavacs.Tables[0].Rows[0]["Ves_Nr"].ToString());
     var dsetWeight = _dB.ScrapWeight(start, end, ves);
     if (dsetWeight.Tables.Count == 0 || dsetWeight.Tables[0].Rows.Count == 0) return;
     for (var i = 0; i < dsetWeight.Tables[0].Rows.Count; i++)
     {
         var scrapLoad = new ScrapLoadEvent
                             {
                                 Time = GetDateTimeValueAsMinDefault(dsetWeight.Tables[0].Rows[i]["Date_t"].ToString()),
                                 Id = GetIntValue(dsetZavacs.Tables[0].Rows[0]["Zavalk_Nr"].ToString()),
                                 ChargeNumber = GetIntValue(dsetZavacs.Tables[0].Rows[0]["Charge_Nr"].ToString()),
                                 TankNumber = GetIntValue(dsetZavacs.Tables[0].Rows[0]["Tank_Nr"].ToString()),
                                 TaskNumber = GetIntValue(dsetZavacs.Tables[0].Rows[0]["Task_Nr"].ToString()),
                                 Weight = GetFloatValue(dsetWeight.Tables[0].Rows[i]["Weight"].ToString())/100
                             };
         scrapLoad = _dB.ScrapName(scrapLoad, GetIntValue(dsetWeight.Tables[0].Rows[i]["Skrap_Code"].ToString()));
         Console.WriteLine("ScrapLoadEvent pushed");
         _mainGate.PushEvent(scrapLoad);
     }
 }
 public ScrapLoadEvent ScrapName(ScrapLoadEvent scrapLoad, int code)
 {
     var connectionString = ConfigurationManager.ConnectionStrings["ScrapConnection"].ToString();
      var sqlText = string.Format("SELECT TOP 1 Name FROM SkrapCode WHERE Code = {0}", code);
      var dset = Execute(connectionString, sqlText);
      if (dset.Tables.Count != 0 && dset.Tables[0].Rows.Count != 0)
      {
          scrapLoad.ScrapName = dset.Tables[0].Rows[0]["Name"].ToString();
      }
     return scrapLoad;
 }
 public static void Main()
 {
     _previousLoadEvent = new ScrapLoadEvent() { Id = 91854, LoadDateTime = Convert.ToDateTime("2012-05-07 23:13:19.000") };
     using (CheckTimer)
     {
         _mainGate = new Client();
         _mainGate.Subscribe();
         CheckTimer.Elapsed += CheckTimerElapsed;
         CheckTimer.Start();
         Console.WriteLine("Sync started. Press any key to stop.");
         Console.ReadKey();
         CheckTimer.Stop();
     }
 }
        private static void CheckScrapLoadForUpdates(int unitNumber)
        {
            var connection =
                new OleDbConnection(ConfigurationManager.ConnectionStrings["ScrapConnection"].ToString());
            var eafConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["EafConnection" + unitNumber].ToString());
            var dset = new DataSet();
            var zavalksTable = ConfigurationManager.AppSettings["ZavalksTableName"];
            var vesWeightTable = ConfigurationManager.AppSettings["VesweightTableName"];
            var command = new OleDbCommand(string.Format("SELECT TOP 1 {0}.Zavalk_Nr," +
                                                         " {0}.Tank_Nr, {0}.Task_Nr, {0}.Charge_Nr, " + "{0}.Time_Start, " + "{0}.Time_End, " +
                                                         " SkrapCode.Name, {1}.Date_t, {1}.Weight" +
                                                         " FROM {0} INNER JOIN {1} ON " +
                                                         "({1}.Date_t BETWEEN {0}.Time_Start" + " AND {0}.Time_End) and ({0}.Ves_Nr = {1}.Ves_Nr)" +
                                                         " INNER JOIN SkrapCode" + " ON {1}.Skrap_Code = SkrapCode.Code" +
                                                         " ORDER BY {1}.Date_t" + " DESC", zavalksTable, vesWeightTable),
                                           connection);
            try
            {
                connection.Open();

                var dadapter = new OleDbDataAdapter {SelectCommand = command};

                dadapter.Fill(dset);
            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {

                connection.Close();
                connection.Dispose();
                command.Dispose();
            }

            if (dset.Tables.Count > 0)
            {
                var newEvent = new ScrapLoadEvent();
                newEvent.Id = (int) dset.Tables[0].Rows[0]["Zavalk_Nr"];
                newEvent.LoadDateTime = (DateTime) dset.Tables[0].Rows[0]["Date_t"];
                newEvent.ScrapName = dset.Tables[0].Rows[0]["Name"].ToString();
                newEvent.ChargeNumber = ((dset.Tables[0].Rows[0]["Charge_Nr"] is int))
                                            ? (int) dset.Tables[0].Rows[0]["Charge_Nr"]
                                            : 0;
                newEvent.TankNumber = (Int16) dset.Tables[0].Rows[0]["Tank_Nr"];
                newEvent.TaskNumber = String.IsNullOrEmpty(dset.Tables[0].Rows[0]["Task_Nr"].ToString())
                                          ? 0
                                          : (Int16) dset.Tables[0].Rows[0]["Task_Nr"];
                newEvent.Weight = (int) dset.Tables[0].Rows[0]["Weight"]/100;

                if (_previousLoadEvent == null ||
                    (newEvent.Id != _previousLoadEvent.Id && newEvent.LoadDateTime != _previousLoadEvent.LoadDateTime))
                {
                    // проверяем вхождение в базе EAF
                    command = new OleDbCommand("SELECT HeatNo, StrtTm_Time, TapTm_Time FROM EAF2_pasp" +
                                           " WHERE (StrtTm_Time >= '" + dset.Tables[0].Rows[0]["Time_Start"] + "')" +
                                           " AND (TapTm_Time <= '" + dset.Tables[0].Rows[0]["Time_End"] + "')" +
                                               " AND (STR(HeatNo, 10) LIKE '%' + '" + dset.Tables[0].Rows[0]["Charge_Nr"] + "' )", eafConnection);
                    try
                    {
                        dset = new DataSet();
                        eafConnection.Open();

                        var dadapter = new OleDbDataAdapter { SelectCommand = command };

                        dadapter.Fill(dset);
                    }
                    catch (Exception e)
                    {
                        throw;
                    }
                    finally
                    {

                        eafConnection.Close();
                        eafConnection.Dispose();
                        command.Dispose();
                    }
                    if (dset.Tables[0].Rows.Count > 0)
                    {
                        Console.WriteLine("Event pushed");
                        _mainGate.PushEvent(newEvent);
                    }
                    _previousLoadEvent = newEvent;
                }
            }
        }