diff --git a/NzbDrone.Core/Datastore/SqliteProvider.cs b/NzbDrone.Core/Datastore/SqliteProvider.cs deleted file mode 100644 index 1fbe6cf9d..000000000 --- a/NzbDrone.Core/Datastore/SqliteProvider.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using Migrator.Framework; -using Migrator.Providers.SQLite; - -namespace NzbDrone.Core.Datastore -{ - class SqliteProvider - { - private readonly ITransformationProvider _dataBase; - - public SqliteProvider(string connectionString) - { - _dataBase = new SQLiteTransformationProvider(new SQLiteDialect(), connectionString); - } - - - public int GetPageSize() - { - return Convert.ToInt32(_dataBase.ExecuteScalar("PRAGMA cache_size")); - } - - - - } -} diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index 6b0b1d83a..2dfbc8e39 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -138,9 +138,9 @@ False ..\Libraries\Migrator.NET\Migrator.Providers.dll - + False - ..\packages\MiniProfiler.1.3\lib\MvcMiniProfiler.dll + ..\packages\MiniProfiler.1.4\lib\MvcMiniProfiler.dll ..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll @@ -177,7 +177,6 @@ - diff --git a/NzbDrone.Core/packages.config b/NzbDrone.Core/packages.config index 4668ad886..399a6aebb 100644 --- a/NzbDrone.Core/packages.config +++ b/NzbDrone.Core/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index cdc7f718a..5e14a3267 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -50,9 +50,9 @@ ..\Libraries\MVC3\Microsoft.Web.Infrastructure.dll True - + False - ..\packages\MiniProfiler.1.3\lib\MvcMiniProfiler.dll + ..\packages\MiniProfiler.1.4\lib\MvcMiniProfiler.dll ..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll diff --git a/NzbDrone.Web/packages.config b/NzbDrone.Web/packages.config index 94f7a8169..00619dcd0 100644 --- a/NzbDrone.Web/packages.config +++ b/NzbDrone.Web/packages.config @@ -7,6 +7,6 @@ - + \ No newline at end of file diff --git a/packages/MiniProfiler.1.3/MiniProfiler.1.3.nupkg b/packages/MiniProfiler.1.3/MiniProfiler.1.3.nupkg deleted file mode 100644 index 3acc489ca..000000000 Binary files a/packages/MiniProfiler.1.3/MiniProfiler.1.3.nupkg and /dev/null differ diff --git a/packages/MiniProfiler.1.3/lib/MvcMiniProfiler.dll b/packages/MiniProfiler.1.3/lib/MvcMiniProfiler.dll deleted file mode 100644 index 5e11c81d0..000000000 Binary files a/packages/MiniProfiler.1.3/lib/MvcMiniProfiler.dll and /dev/null differ diff --git a/packages/MiniProfiler.1.4/MiniProfiler.1.4.nupkg b/packages/MiniProfiler.1.4/MiniProfiler.1.4.nupkg new file mode 100644 index 000000000..dcbc7f48e Binary files /dev/null and b/packages/MiniProfiler.1.4/MiniProfiler.1.4.nupkg differ diff --git a/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.dll b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.dll new file mode 100644 index 000000000..e35747310 Binary files /dev/null and b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.dll differ diff --git a/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.pdb b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.pdb new file mode 100644 index 000000000..2c55ac7d7 Binary files /dev/null and b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.pdb differ diff --git a/packages/MiniProfiler.1.3/lib/MvcMiniProfiler.xml b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.xml similarity index 52% rename from packages/MiniProfiler.1.3/lib/MvcMiniProfiler.xml rename to packages/MiniProfiler.1.4/lib/MvcMiniProfiler.xml index 937e4d4cd..3cf07f964 100644 --- a/packages/MiniProfiler.1.3/lib/MvcMiniProfiler.xml +++ b/packages/MiniProfiler.1.4/lib/MvcMiniProfiler.xml @@ -4,45 +4,580 @@ MvcMiniProfiler - + + + Formats any SQL query with inline parameters, optionally including the value type + + + + + Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc. + + + + + Return SQL the way you want it to look on the in the trace. Usually used to format parameters + + + Formatted SQL + + + + Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value + + whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */ + + + + Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor + + The SqlTiming to format + A formatted SQL string + + + + Returns a string representation of the parameter's value, including the type + + The parameter to get a value for + + + + + A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + + Totally baller. + + + + Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as + their starting time. + + + + + + + + + + Creates and starts a new MiniProfiler for the root , filtering steps to . + + + + + Obsolete - used for serialization. + + + + + Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + + + + + Returns all results contained in all child steps. + + + + + Returns milliseconds based on Stopwatch's Frequency. + + + + + Starts a new MiniProfiler for the current Request. This new profiler can be accessed by + + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns an that will time the code between its creation and disposal. Use this method when you + do not wish to include the MvcMiniProfiler namespace for the extension method. + + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Returns the css and javascript includes needed to display the MiniProfiler results UI. + + Which side of the page the profiler popup button should be displayed on (defaults to left) + Whether to show trivial timings by default (defaults to false) + Whether to show time the time with children column by default (defaults to false) + The maximum number of trace popups to show before removing the oldest (defaults to 15) + Script and link elements normally; an empty string when there is no active profiling session. + + + + Renders the current to json. + + + + + Renders the parameter to json. + + + + + Deserializes the json string parameter to a . + + + + + Create a DEEP clone of this object + + + + + + Identifies this Profiler so it may be stored/cached. + + + + + A display name for this profiling session. + + + + + When this profiler was instantiated. + + + + + Where this profiler was run. + + + + + Allows filtering of steps based on what + the steps are created with. + + + + + The first that is created and started when this profiler is instantiated. + All other s will be children of this one. + + + + + Contains information about queries executed during this profiling session. + + + + + Milliseconds, to one decimal place, that this MiniProfiler ran. + + + + + Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + + + + + Returns true when we have profiled queries. + + + + + Returns true when any child Timings have duplicate queries. + + + + + Returns true when or any of its are . + + + + + Returns true when all child s are . + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Ticks since this MiniProfiler was started. + + + + + Points to the currently executing Timing. + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + Various configuration properties. + + + + + Ensures that and objects are initialized. Null values will + be initialized to use the default strategy. + + + + + When true, link and script tags will be written to the response stream when MiniProfiler.Stop is called. + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Dictates if the "time with children" column is displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false) + + + + + Dictates if trivial timings are displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTrivial: true/false) + + + + + Determines how many traces to show before removing the oldest; defaults to 15. + For a per-page override you can use .RenderIncludes(maxTracesToShow: 10) + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right) + + + + + When is called, if the current request url starts with this property, + no profiler will be instantiated and no results will be displayed. + Default value is { "/mini-profiler-includes.js", "/mini-profiler-includes.less", "/mini-profiler-results", "/content/", "/scripts/" }. + + + + + The path under which ALL routes are registered in, defaults to the application root. For example, "~/myDirectory/" would yield + "/myDirectory/mini-profiler-includes.js" rather than just "/mini-profiler-includes.js" + Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/" + + + + + Understands how to save and load MiniProfilers for a very limited time. Used for caching between when + a profiling session ends and results can be fetched to the client. + + + The normal profiling session life-cycle is as follows: + 1) request begins + 2) profiler is started + 3) normal page/controller/request execution + 4) profiler is stopped + 5) profiler is cached with 's implementation of + 6) request ends + 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from + 's implementation of + + + + + Understands how to save and load MiniProfilers for an extended (even indefinite) time, allowing results to be + shared with other developers or even tracked over time. + + + + + The formatter applied to the SQL being rendered (used only for UI) + + + + + Assembly version of this dank MiniProfiler. + + + + + A function that determines who can access the MiniProfiler results url. It should return true when + the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and + MiniProfiler parameter is the results that were profiled. + + + Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null. + + + - Categories of sql statements. + Categorizes individual steps to allow filtering. - + - Unknown + Default level given to Timings. - + - DML statements that alter database state, e.g. INSERT, UPDATE + Useful when profiling many items in a loop, but you don't wish to always see this detail. - + - Statements that return a single record + Dictates on which side of the page the profiler popup button is displayed; defaults to left. - + - Statements that iterate over a result set + Profiler popup button is displayed on the left. - + - Extension mechanism for additional services; + Profiler popup button is displayed on the right. + + + + + Contains helper methods that ease working with null s. + + + + + Wraps in a call and executes it, returning its result. + + The current profiling session or null. + Method to execute and profile. + The step name used to label the profiler results. + + + + + Returns an that will time the code between its creation and disposal. + + The current profiling session or null. + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Adds 's hierarchy to this profiler's current Timing step, + allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + + + + + Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + + The current profiling session or null. + + + + Execute parameterized SQL + + Number of rows affected + + + + Return a list of dynamic objects, reader is closed after the call + + + + + Execute a command that returns multiple result sets, and access each in turn + + + + + Return a typed list of objects, reader is closed after the call + + + + + Maps a query to objects + + The return type + + + + + + + + The Field we should split and read the second object from (default: id) + Number of seconds before command execution timeout + + + + + This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example), + and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE** + equality. The type is fully thread-safe. + + + + + Read the next grid of results + + + + + This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example), + and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE** + equality. The type is fully thread-safe. + + + + + Provides saving and loading s to a storage medium. + + + + + Stores under , which is also its . + + + The Guid that identifies the MiniProfiler; subsequent calls to + will pass this Guid. + + The results of a profiling session. + + Should be able to be called multiple times on the same profiler. + + + + + Returns a from storage based on . + + + + + NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way + + + + + Does NOTHING, implement me! + + + + + Understands how to store a to a MSSQL database. + + + + + Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and + querying of slow results. + + + + + Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString. + + + + + Saves 'profiler' to a database under 'id'. + + + + + Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'. + + + + + Returns a DbConnection for your specific provider. + + + + + Returns a DbConnection already opened for execution. + + + + + Giving freshly selected collections, this method puts them in the correct + hierarchy under the 'result' MiniProfiler. + + + + + How we connect to the database used to save/load MiniProfiler results. + + + + + Creates needed tables. Run this once on your database. + + + Works in sql server and sqlite (with documented removals). + TODO: add indexes + + + + + Returns a new . + + + + + Stores 'profiler' to dbo.MiniProfilers under 'id'; stores all child Timings and SqlTimings to their respective tables. + + + + + Saves parameter Timing to the dbo.MiniProfilerTimings table. + + + + + Saves parameter SqlTiming to the dbo.MiniProfilerSqlTimings table. + + + + + Saves any SqlTimingParameters used in the profiled SqlTiming to the dbo.MiniProfilerSqlTimingParameters table. + + + + + Loads the MiniProfiler identifed by 'id' from the database. + + + + + Returns a connection to Sql Server. - requested service provider or null. An individual profiling step that can contain child steps. - + - Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + Rebuilds all the parent timings on deserialization calls @@ -60,6 +595,11 @@ Obsolete - used for serialization. + + + Returns this Timing's Name. + + Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step. @@ -70,6 +610,23 @@ Completes this Timing's duration and sets the MiniProfiler's Head up one level. + + + Add the parameter 'timing' to this Timing's Children collection. + + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. + + A sql statement profiling that was executed in this Timing step. + + Used outside this assembly for custom deserialization when creating an implementation. + + Unique identifer for this timing; set during construction. @@ -105,7 +662,12 @@ Any queries that occurred during this Timing step. - + + + Needed for database deserialization and JSON serialization. + + + Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration. @@ -127,6 +689,11 @@ , by default 2.0 ms. + + + Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + + Returns true when this Timing has inner Timing steps. @@ -154,494 +721,389 @@ - How many sql data readers were executed in this Timing step. - - - - - How many sql scalar queries were executed in this Timing step. - - - - - How many sql non-query statements were executed in this Timing step. - - - - - If the underlying command supports BindByName, this sets/clears the underlying - implementation accordingly. This is required to support OracleCommand from dapper-dot-net - - - - - Wraps a database connection, allowing sql execution timings to be collected when a session is started. - - - - - When is not null, returns a new that wraps , - providing query execution profiling. If is null, connection is returned unwrapped. - - Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - - - - When is not null, returns a new that wraps , - providing query execution profiling. If profiler is null, connection is returned unwrapped. - - Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - The currently started or null. - - - - Returns a new that wraps , - providing query execution profiling. If profiler is null, no profiling will occur. - - Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - The currently started or null. - - - - Profiles a single sql execution. - - - - - Creates a new SqlTiming to profile 'command'. - - - - - Obsolete - used for serialization. - - - - - Called when command execution is finished to determine this SqlTiming's duration. - - - - - Called when database reader is closed, ending profiling for SqlTimings. - - - - - To help with display, put some space around sammiched commas + How many sql data readers were executed in this Timing step. - + - Category of sql statement executed. + How many sql scalar queries were executed in this Timing step. - + - The sql that was executed. + How many sql non-query statements were executed in this Timing step. - + - Roughly where in the calling code that this sql was executed. + Categories of sql statements. - + - Offset from main MiniProfiler start that this sql began. + Unknown - + - How long this sql statement took to execute. + DML statements that alter database state, e.g. INSERT, UPDATE - + - When executing readers, how long it took to come back initially from the database, - before all records are fetched and reader is closed. + Statements that return a single record - + - True when other identical sql statements have been executed during this MiniProfiler session. + Statements that iterate over a result set - + - Gets part of a stack trace containing only methods we care about. + Contains helper code to time sql statements. - + - Contains the default list of full type names we don't want in any stack trace snippets. + Returns a new SqlProfiler to be used in the 'profiler' session. - + - A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + Tracks when 'command' is started. - Totally baller. - + - Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as - their starting time. + Finishes profiling for 'command', recording durations. - + - + Called when 'reader' finishes its iterations and is closed. - + - Creates and starts a new MiniProfiler for the root , filtering steps to . + The profiling session this SqlProfiler is part of. - + - Obsolete - used for serialization. + Helper methods that allow operation on SqlProfilers, regardless of their instantiation. - + - Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + Tracks when 'command' is started. - + - Returns all results contained in all child steps. + Finishes profiling for 'command', recording durations. - + - Returns milliseconds based on Stopwatch's Frequency. + Called when 'reader' finishes its iterations and is closed. - + - Starts a new MiniProfiler for the current Request. This new profiler can be accessed by - + Understands how to route and respond to MiniProfiler UI urls. - + - Ends the current profiling session, if one exists. + Returns this to handle . - - When true, clears the for this HttpContext, allowing profiling to - be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. - - + - Returns an that will time the code between its creation and disposal. Use this method when you - do not wish to include the MvcMiniProfiler namespace for the extension method. + Returns either includes' css/javascript or results' html. - A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. - This step's visibility level; allows filtering when is called. - + - Returns the css and javascript includes needed to display the MiniProfiler results UI. + Handles rendering static content files. - Which side of the page the profiler popup button should be displayed on (defaults to left) - Whether to show trivial timings by default (defaults to false) - Whether to show time the time with children column by default (defaults to false) - Script and link elements normally; an empty string when there is no active profiling session. - + - Renders the current to json. + Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. - + - Renders the parameter to json. + Embedded resource contents keyed by filename. - + - Deserializes the json string parameter to a . + Helper method that sets a proper 404 response code. - + - Identifies this Profiler so it may be stored/cached. + Try to keep everything static so we can easily be reused. - + - A display name for this profiling session. + Formats SQL server queries with a DECLARE up top for parameter values - + - When this profiler was instantiated. + Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top. + The SqlTiming to format + A formatted SQL string - + - Where this profiler was run. + Common extension methods to use only in this project - + - Allows filtering of steps based on what - the steps are created with. + Answers true if this String is either null or empty. - + - The first that is created and started when this profiler is instantiated. - All other s will be children of this one. + Answers true if this String is neither null or empty. - + - Contains information about queries executed during this profiling session. + Removes trailing / characters from a path and leaves just one - + - Milliseconds, to one decimal place, that this MiniProfiler ran. + Removes any leading / characters from a path - + - Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + Removes any leading / characters from a path - + - Returns true when we have profiled queries. + Extension mechanism for additional services; + requested service provider or null. - + - Returns true when any child Timings have duplicate queries. + Wraps a database connection, allowing sql execution timings to be collected when a session is started. - + - Returns true when or any of its are . + Returns a new that wraps , + providing query execution profiling. + Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - + - Returns true when all child s are . + Returns a new that wraps , + providing query execution profiling. + Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection + The currently started or null. - + - Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + Returns a new that wraps , + providing query execution profiling. If profiler is null, no profiling will occur. + Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection + The currently started or null. - + - Ticks since this MiniProfiler was started. + Information about a DbParameter used in the sql statement profiled by SqlTiming. - + - Points to the currently executing Timing. + Which SqlTiming this Parameter was executed with. - + - Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + Parameter name, e.g. "@routeName" - + - Various configuration properties. + The value submitted to the database. - + - When setters are null, creates default getters and setters that operate on the HttpRuntime.Cache. + System.Data.DbType, e.g. "String", "Bit" - - Our MiniProfiler must have these to run. - - + - When true, link and script tags will be written to the response stream when MiniProfiler.Stop is called. + How large the type is, e.g. for string, size could be 4000 - + - Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + Profiles a single sql execution. - + - Dictates on which side of the page the profiler popup button is displayed; defaults to false (i.e. renders on left side). + Creates a new SqlTiming to profile 'command'. - + - When is called, if the current request url starts with this property, - no profiler will be instantiated and no results will be displayed. - Default value is { "/mini-profiler-includes.js", "/mini-profiler-includes.less", "/mini-profiler-results", "/content/", "/scripts/" }. + Obsolete - used for serialization. - + - A method that will return a MiniProfiler when given a Guid. Meant for caching individual page profilings for a - very limited time. + Called when command execution is finished to determine this SqlTiming's duration. - - By default, MiniProfilers will be cached for 5 minutes in the HttpRuntime.Cache. This can be extended when the cache is shared - from its top link. - - + - A method that will save a MiniProfiler into a short-duration cache, so results can fetched down to the client after page load. - It is important that you cache the MiniProfiler under its Id, a Guid - this Id will be passed to the ShortTermCacheGetter. + Called when database reader is closed, ending profiling for SqlTimings. - - By default, MiniProfilers will be cached for 5 minutes in the HttpRuntime.Cache. - - + - A method that will return a MiniProfiler when given a Guid. Meant for caching profilings for an extended period of time, so - they may be shared with others. + To help with display, put some space around sammiched commas - - This is used by the full page results view, which is linked in the popup's header. - - + - A method that will save a MiniProfiler, identified by its Guid Id, into long-term storage. Allows results to be shared with others. - It is important that you cache the MiniProfiler under its Id, a Guid - this Id will be passed to the LongTermCacheGetter. + Unique identifier for this SqlTiming. - - This is activated EVERY TIME the top left header link is clicked in the popup UI and the full page results - view is displayed. When overriding the default, your code will need to handle setting the same profiler - back into your chosen storage medium (e.g. no-op when it already exists). - - + - Assembly version of this dank MiniProfiler. + Category of sql statement executed. - + - Understands how to route and respond to MiniProfiler UI urls. + The sql that was executed. - + - Returns this to handle . + The sql that was executed. - + - Returns either includes' css/javascript or results' html. + The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter - + - Handles rendering our .js and .less static content files. + Roughly where in the calling code that this sql was executed. - + - Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. + Offset from main MiniProfiler start that this sql began. - + - Embedded resource contents keyed by filename. + How long this sql statement took to execute. - + - Helper method that sets a proper 404 response code. + When executing readers, how long it took to come back initially from the database, + before all records are fetched and reader is closed. - + - Try to keep everything static so we can easily be reused. + Stores any parameter names and values used by the profiled DbCommand. - + - This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example), - and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE** - equality. The type is fully thread-safe. + Id of the Timing this statement was executed in. + + Needed for database deserialization. + - + - Categorizes individual steps to allow filtering. + The Timing step that this sql execution occurred in. - + - Default level given to Timings. + True when other identical sql statements have been executed during this MiniProfiler session. - + - Useful when profiling many items in a loop, but you don't wish to always see this detail. + Gets part of a stack trace containing only methods we care about. - + - Dictates on which side of the page the profiler popup button is displayed; defaults to left. + Contains the default list of full type names we don't want in any stack trace snippets. - + - Profiler popup button is displayed on the left. + Understands how to store a to the with absolute expiration. - + - Profiler popup button is displayed on the right. + The string that prefixes all keys that MiniProfilers are saved under, e.g. + "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e". - + - Contains helper methods that ease working with null s. + Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration. - + - Wraps in a call and executes it, returning its result. + Saves to the HttpRuntime.Cache under a key concated with + and . - The current profiling session or null. - Method to execute and profile. - The step name used to label the profiler results. - - + - Returns an that will time the code between its creation and disposal. + Returns the originally-stored - The current profiling session or null. - A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. - This step's visibility level; allows filtering when is called. + + - + - Adds 's hierarchy to this profiler's current Timing step, - allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + How long to cache each for (i.e. the absolute expiration parameter of + ) - + - Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + If the underlying command supports BindByName, this sets/clears the underlying + implementation accordingly. This is required to support OracleCommand from dapper-dot-net - The current profiling session or null.