private bool disposedValue = false;             // To detect redundant calls

            // IDisposable
            protected virtual void Dispose(bool disposing)
            {
                if (!this.disposedValue)
                {
                    if (disposing)
                    {
                        // TODO: free other state (managed objects).
                        //disposing
                        DPE_GlobalDefinitions.DISPOSE_DPE_PROXY_PublicationsDataBase();
                    }

                    // TODO: free your own state (unmanaged objects).
                    // TODO: set large fields to null.
                }
                this.disposedValue = true;
            }
Пример #2
0
            private void WriteDataUPDATE(DPE_PublicationData data)
            {
                try
                {
                    lock (_locker)
                    {
                        using (var cnn = new System.Data.SqlClient.SqlConnection(this._dataBaseConnectionString))
                        {
                            cnn.Open();

                            using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
                            {
                                cmd.Connection = cnn;


                                this._dataType  = DPE_GlobalDefinitions.GetPublicationValueDataTypeAsString(data.Value);
                                this._dataValue = DPE_GlobalDefinitions.GetPublicationValueAsString(data.VariableName, System.Convert.ToInt32(data.Value));

                                string attributesAsString = "";
                                if (data.DataAttributesTable.Count > 0)
                                {
                                    CustomHashTable table = data.DataAttributesTable.ToSTXHashTable();
                                    attributesAsString = UtilitiesLibrary.Data.XMLDataFormatting.GetValueAsString(data.VariableName, table);
                                }

                                cmd.CommandText = "INSERT into " + this._publicationName + "(dataname,dataType, value, attributesTable , isDataReset)" +
                                                  "VALUES(\'" + data.VariableName + "\',\'" + this._dataType + "\',\'" + this._dataValue + "\',\'" + attributesAsString + "\',0)";
                                try
                                {
                                    cmd.ExecuteNonQuery();
                                    this._UPDATE_StatisticsHandler.LogEvent(data.VariableName);
                                }
                                catch (Exception ex)
                                {
                                    string    msg   = "Error performing UPDATE on \'" + data.VariableName + "\' from publication \'" + this._publicationName + "\': " + ex.Message;
                                    Exception newEX = new Exception(msg);
                                    throw (newEX);
                                }
                            }                     //--------- cmd
                        }                         //using del sql connection
                    }
                }
                catch (Exception ex)
                {
                    CustomEventLog.WriteEntry(ex);
                }
            }
            private void EventHandling_readTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
            {
                //*****************************************************************************
                // STOPS THE TIMER
                //*****************************************************************************
                this._readTimer.Stop();

                try
                {
                    if (this._isFirstTimeRead)
                    {
                        //retrieves the server datetime to retrieve the data using datetime
                        this._lastReadDatetime    = this.GetPublicationsServerDAtetime();
                        this.dateAsstring         = NowToStandardODBCStringFormat(this._lastReadDatetime);
                        this._dataReadCommandTest = "Select * from " + this._tablename + " where datetime >= \'" + dateAsstring + "\' order by [datetime] asc";
                        this._isFirstTimeRead     = false;
                    }
                    else
                    {
                        if (this._lastRowIDReaded > 0)
                        {
                            //uses the row id as to retrieve new data
                            this._dataReadCommandTest = "Select * from " + this._tablename + " where rowID > " + System.Convert.ToString(this._lastRowIDReaded) + " order by [rowID] asc";
                        }
                        else
                        {
                            //uses the datetime as to retrieve new data
                            this.dateAsstring         = NowToStandardODBCStringFormat(this._lastReadDatetime);
                            this._dataReadCommandTest = "Select * from " + this._tablename + " where datetime >= \'" + dateAsstring + "\' order by [datetime] asc";
                        }
                    }

                    using (System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(this._dataBaseSonnectionString))
                    {
                        try
                        {
                            cnn.Open();


                            using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
                            {
                                cmd.Connection = cnn;

                                //************************************************************
                                //PREPARES THE QUERY TO THE PUBLICATION
                                //************************************************************

                                cmd.CommandText = this._dataReadCommandTest;

                                using (System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter())
                                {
                                    da.SelectCommand = cmd;


                                    using (DataTable dt = new DataTable())
                                    {
                                        //******************************************
                                        // RETRIEVS THE DATA FROM DATA SOURCE
                                        da.Fill(dt);
                                        //******************************************


                                        //************************************************************
                                        //DATA TREATMENT
                                        if (dt.Rows.Count > 0)
                                        {
                                            DataRow     row   = default(DataRow);
                                            IEnumerator enumm = dt.Rows.GetEnumerator();
                                            while (enumm.MoveNext())
                                            {
                                                row = (DataRow )enumm.Current;

                                                //*****************************************************
                                                // transfors the row into a data update or data reset
                                                //*****************************************************
                                                try
                                                {
                                                    long     _rowID;
                                                    string   _dataType        = "";
                                                    string   _value           = "";
                                                    string   _dataName        = "";
                                                    DateTime _dataDatetime    = System.Convert.ToDateTime(null);
                                                    bool     _isDataReset     = false;
                                                    string   _attributesTAble = "";


                                                    _rowID           = (long)(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_ROWID]);
                                                    _dataType        = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_TYPE]);
                                                    _value           = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_VALUE]);
                                                    _dataName        = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_NAME]);
                                                    _attributesTAble = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_ATTRIBUTES_TABLE]);

                                                    try
                                                    {
                                                        _dataDatetime = System.Convert.ToDateTime(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_DATETIME]);
                                                    }
                                                    catch (Exception)
                                                    {
                                                        _dataDatetime = DateTime.Now;
                                                    }
                                                    _isDataReset = System.Convert.ToBoolean(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_IS_DATA_RESET]);


                                                    //------------------------------------------------

                                                    if (!_isDataReset)
                                                    {
                                                        DPE_PublicationData data = default(DPE_PublicationData);
                                                        data = DPE_GlobalDefinitions.GetPublicationValueFromString(this._publicationName, _dataName, _dataType, _value);


                                                        AttributesTable attrTAble = default(AttributesTable);
                                                        //------------------------------------------------
                                                        //verifies if there are a parameters table
                                                        if (_attributesTAble.Length > 0)
                                                        {
                                                            DataVariable    dataVar = XMLDataFormatting.RetrieveDataVariableFromXMLString(_attributesTAble);
                                                            CustomHashTable table   = (CustomHashTable)dataVar.Data;
                                                            attrTAble = new AttributesTable(table);
                                                            data.AttachAttibutesTable(attrTAble);
                                                        }

                                                        this._DATA_UPDATE_PCQ.Enqueue(data);
                                                    }
                                                    else
                                                    {
                                                        this._DATA_RESET_PCQ.Enqueue(_dataName);
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    CustomEventLog.WriteEntry(ex);
                                                }
                                            }
                                        }
                                        //************************************************************


                                        //************************************************************
                                        //GETS THE LAST TABLE REFERENCE DATE TIME and ROWid FROM THE DATA IF IS AVAILABLE
                                        try
                                        {
                                            if (dt.Rows.Count > 0)
                                            {
                                                this.SetLastReadDateTiemeAndRowID(dt);
                                            }
                                        }
                                        catch (Exception)
                                        {
                                        }
                                        //************************************************************
                                    }                     //----------- data table
                                }                         //-------- SqlDataAdapter
                            }                             //-------- SqlCommand
                        }
                        catch (System.Data.SqlClient.SqlException sqlex)
                        {
                            //overrides the error qhen
                            if (sqlex.ErrorCode != -2146232060)
                            {
                                CustomEventLog.WriteEntry(sqlex);
                            }
                        }
                        catch (Exception ex)
                        {
                            CustomEventLog.DisplayEvent(EventLogEntryType.Error, ex.ToString());
                        }
                        finally
                        {
                            if (this._keepReading)
                            {
                                this._readTimer.Start();
                            }

                            try
                            {
                                cnn.Close();
                                cnn.Dispose();
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }                     //-------  sqlConnection
                }
                catch (Exception ex)
                {
                    CustomEventLog.DisplayEvent(EventLogEntryType.Error, ex.ToString());
                }
            }