예제 #1
0
        public override bool ToSQL(string tablename, Guid executionID, StringBuilder sb, bool firstItem)
        {
            try
            {
                Int64 elapsed = 0; // Convert.ToInt64(ResponseTimestamp.Subtract(RequestTimestamp).TotalMilliseconds);
                if (!firstItem)
                {
                    sb.Append(",");
                }

                //  (FDAExecutionID, connectionID, DeviceAddress, Attempt, TimestampUTC1, TimestampUTC2, ElapsedPeriod, TransCode, TransStatus, ApplicationMessage,DBRGUID,DBRGIdx,DBRGSize,Details01,TxSize,Details02,RxSize,ProtocolNote,Protocol) values ");

                sb.Append("('");
                sb.Append(executionID);
                sb.Append("','");
                sb.Append(ConnectionID.ToString());
                sb.Append("','");
                sb.Append(DeviceAddress);
                sb.Append("',");
                sb.Append(AttemptNum);
                sb.Append(",'");
                sb.Append(DateTimeHelpers.FormatDateTime(EventTime));
                sb.Append("','");
                sb.Append(DateTimeHelpers.FormatDateTime(EventTime));
                sb.Append("',");
                sb.Append(elapsed);
                sb.Append(",");
                sb.Append(EventType);
                sb.Append(",CAST(1 as bit),");
                sb.Append("'','"); // app message
                sb.Append(GroupID);
                sb.Append("','");
                sb.Append(GroupIdx);
                sb.Append("',");
                sb.Append(GroupSize);
                sb.Append(",'Tx: ");
                sb.Append(BitConverter.ToString(AckBytes));
                sb.Append("',");
                sb.Append(AckBytes.Length);
                sb.Append(",'N/A',0,'");
                sb.Append(ProtocolNote);
                sb.Append("','");
                sb.Append(Protocol);
                sb.Append("')");
            }
            catch (Exception ex)
            {
                Globals.SystemManager.LogApplicationError(Globals.FDANow(), ex, "Error occurred while adding a comms log comms transaction item to an SQL insert batch");
                return(false);
            }
            return(true);
        }
예제 #2
0
        public override bool ToSQL(string tablename, Guid executionID, StringBuilder sb, bool firstItem)
        {
            //  (FDAExecutionID, connectionID, DeviceAddress, Attempt, TimestampUTC1, TimestampUTC2, ElapsedPeriod, TransCode, TransStatus, ApplicationMessage,DBRGUID,DBRGIdx,DBRGSize,Details01,TxSize,Details02,RxSize,ProtocolNote,Protocol) values ");
            try
            {
                DateTime endTime = StartTime.Add(Elapsed);
                if (!firstItem)
                {
                    sb.Append(",");
                }
                sb.Append("('");
                sb.Append(executionID);
                sb.Append("','");
                sb.Append(ConnectionID.ToString());
                sb.Append("','',");
                sb.Append(Attempt);
                sb.Append(",'");
                sb.Append(DateTimeHelpers.FormatDateTime(StartTime));
                sb.Append("','");
                sb.Append(DateTimeHelpers.FormatDateTime(endTime));
                sb.Append("',");
                sb.Append(Elapsed.TotalMilliseconds);
                sb.Append(",");
                sb.Append(EventType);
                sb.Append(",");
                sb.Append("cast(" + Status + " as bit)");
                sb.Append(",'");
                sb.Append(Message.Replace("'", "''"));
                sb.Append("','00000000-0000-0000-0000-000000000000','0',0,'N/A',0,'N/A',0,'N/A','N/A')");
            } catch (Exception ex)
            {
                Globals.SystemManager.LogApplicationError(Globals.FDANow(), ex, "Error occurred while adding a comms log connection event to an SQL insert batch");
                return(false);
            }

            return(true);
        }
예제 #3
0
        public override bool ToSQL(string tablename, Guid executionID, StringBuilder sb, bool firstItem)
        {
            // generate the SQL for inserting this log item into the database (will be appended to a larger query for inserting several records in a single query)

            // the entire insert query looks like this:
            // Insert into CommsLog (FDAExecutionID, connectionID, DeviceAddress, Attempt, TimestampUTC1, TimestampUTC2, ElapsedPeriod, TransCode, TransStatus, ApplicationMessage,DBRGUID,DBRGIdx,DBRGSize,Details01,TxSize,Details02,RxSize,ProtocolNote,Protocol) values ")
            // values (log item 1),(log item 2), etc...

            try
            {
                string timestampStr = DateTimeHelpers.FormatDateTime(Timestamp);

                if (!firstItem)
                {
                    sb.Append(",");
                }
                sb.Append("('");
                sb.Append(executionID);
                sb.Append("','");
                sb.Append(ConnectionID.ToString());
                sb.Append("','',0,'");
                sb.Append(timestampStr);
                sb.Append("','");
                sb.Append(timestampStr);
                sb.Append("',0,");
                sb.Append(EventType);
                sb.Append(",cast(1 as bit),'");
                sb.Append(Message.Replace("'", "''"));
                sb.Append("','00000000-0000-0000-0000-000000000000','0',0,'N/A',0,'N/A',0,'N/A','N/A')");
            } catch (Exception ex)
            {
                Globals.SystemManager.LogApplicationError(Globals.FDANow(), ex, "Error occurred while adding a comms log comms event item to an SQL insert batch");
                return(false);
            }
            return(true);
        }
예제 #4
0
        public override bool ToSQL(string tablename, Guid executionID, StringBuilder sb, bool firstItem)
        {
            // generate the SQL for inserting this log item into the database (will be appended to a larger query for inserting several records in a single query)
            // the entire insert query looks like this:
            // Insert into CommsLog (FDAExecutionID, connectionID, DeviceAddress, Attempt, TimestampUTC1, TimestampUTC2, ElapsedPeriod, TransCode, TransStatus, ApplicationMessage,DBRGUID,DBRGIdx,DBRGSize,Details01,TxSize,Details02,RxSize,ProtocolNote,Protocol)
            // values (log item 1),(log item 2), etc...

            try
            {
                Int64 elapsed = Convert.ToInt64(ResponseTimestamp.Subtract(RequestTimestamp).TotalMilliseconds);
                if (!firstItem)
                {
                    sb.Append(",");
                }


                sb.Append("('");
                sb.Append(executionID);
                sb.Append("','");
                sb.Append(ConnectionID.ToString());
                sb.Append("','");
                sb.Append(DeviceAddress);
                sb.Append("',");
                sb.Append(AttemptNum);
                sb.Append(",'");
                sb.Append(DateTimeHelpers.FormatDateTime(RequestTimestamp));
                sb.Append("','");
                sb.Append(DateTimeHelpers.FormatDateTime(ResponseTimestamp));
                sb.Append("',");
                sb.Append(elapsed);
                sb.Append(",");
                sb.Append(EventType);
                sb.Append(",");
                if (ResultStatus == DataRequest.RequestStatus.Success)
                {
                    sb.Append("cast(1 as bit),");
                }
                else
                {
                    sb.Append("cast(0 as bit),");
                }
                sb.Append("'");
                sb.Append(ApplicationMessage);
                sb.Append("','");
                sb.Append(GroupID);
                sb.Append("','");
                sb.Append(GroupIdx);
                sb.Append("',");
                sb.Append(GroupSize);
                sb.Append(",'Tx: ");
                sb.Append(BitConverter.ToString(RequestBytes));
                sb.Append("',");
                sb.Append(RequestBytes.Length);
                if (ResponseBytes != null)
                {
                    sb.Append(",'Rx: ");
                    sb.Append(BitConverter.ToString(ResponseBytes));
                    sb.Append("',");
                    sb.Append(ResponseBytes.Length);
                    sb.Append(",'");
                }
                else
                {
                    sb.Append(",'N/A',0,'");
                }
                sb.Append(Details.Replace("'", "''"));
                sb.Append("','");
                sb.Append(Protocol);
                sb.Append("')");
            } catch (Exception ex)
            {
                Globals.SystemManager.LogApplicationError(Globals.FDANow(), ex, "Error occurred while adding a comms log comms transaction item to an SQL insert batch");
                return(false);
            }
            return(true);
        }
예제 #5
0
        public void ToSQL(string tablename, Guid executionID, StringBuilder sb, bool firstItem)
        {
            string objname;
            string desc;
            string stacktrace;

            objname = ObjectName?.Replace("'", "''");
            if (objname == null)
            {
                objname = "";
            }

            desc = Description?.Replace("'", "''");
            if (desc == null)
            {
                desc = "";
            }

            stacktrace = StackTrace?.Replace("'", "''");
            if (stacktrace == null)
            {
                stacktrace = "";
            }

            //            sb.Clear();
            //           sb.Append("INSERT INTO ");
            //            sb.Append(tablename);
            //            sb.Append(" (FDAExecutionID,Timestamp,EventType,ObjectType,ObjectName,Description,ErrorCode,StackTrace) VALUES ('");
            if (!firstItem)
            {
                sb.Append(",");
            }
            sb.Append("('");
            sb.Append(executionID);
            sb.Append("','");
            sb.Append(DateTimeHelpers.FormatDateTime(Timestamp));
            sb.Append("','");
            sb.Append(EventType.ToString());
            sb.Append("','");
            sb.Append(ObjectType);
            sb.Append("','");

            sb.Append(objname);
            sb.Append("','");
            sb.Append(desc);
            sb.Append("','");
            sb.Append(ErrorCode);
            sb.Append("','");
            sb.Append(stacktrace);
            sb.Append("')");

            /* old way, slower
             * sql = "INSERT INTO " + Globals.SystemManager.GetTableName("AppLog") + " (FDAExecutionID,Timestamp,EventType,ObjectType,ObjectName,Description,ErrorCode,StackTrace) VALUES ('";
             * sql += executionID + "','";
             * sql += Helpers.FormatDateTime(Timestamp) + "','";
             * sql += EventType.ToString() + "','";
             * sql += ObjectType + "','";
             * sql += ObjectName?.Replace("'","''") + "','";
             * sql +=  Description?.Replace("'","''") + "','";
             * sql += ErrorCode + "','";
             * sql += StackTrace?.Replace("'","''") + "');";
             *
             * return sql;
             */
        }