public static async Task <int> InsertLogEntryAsync(this LogDbContext context, EventLog eventLog)
        {
            object[] parameters = InsertEventlogContextParameters(
                eventLog.TimeStamp, eventLog.Level, eventLog.Logger, eventLog.Address, eventLog.MachineName, eventLog.WindowsId,
                eventLog.CallerSide, eventLog.LineNumber, eventLog.ThreadId, eventLog.StackTrace,
                eventLog.Message, eventLog.Exception, eventLog.Json);

            return(await context.Database.ExecuteSqlCommandAsync(_uspInsertEventlogContextQuery, parameters));
        }
        /// <example>
        /// var result = await context.GetLogEntry(11).FirstOrDefaultAsync();
        /// </example>
        /// <remarks>Returned object due to internal structure is not reusable.</remarks>
        public static DbRawSqlQuery <EventLog> GetLogEntryQuery(this LogDbContext context, Nullable <int> id)
        {
            SqlParameter paramater = new SqlParameter("@id", SqlDbType.Int)
            {
                Value = id.Value
            };

            return(context.Database.SqlQuery <EventLog>("SELECT * FROM Log.fn_select_eventlog_context(@id)", paramater));
        }
        public static async Task <int> InsertLogEntryAsync(
            this LogDbContext context, DateTime timeStamp, byte level, string logger,
            string address, string machineName, string windowsId, string callerSide, int lineNumber,
            int?threadId, string stackTrace, string message, string exception, string jsonObject)
        {
            object[] parameters = InsertEventlogContextParameters(
                timeStamp, level, logger, address, machineName, windowsId, callerSide, lineNumber,
                threadId, stackTrace, message, exception, jsonObject);

            return(await context.Database.ExecuteSqlCommandAsync(_uspInsertEventlogContextQuery, parameters));
        }