Files
SabreTools/SabreTools.Library/Tools/InternalStopwatch.cs

61 lines
1.6 KiB
C#
Raw Normal View History

using System;
using SabreTools.Library.Data;
2017-10-06 20:46:43 -07:00
namespace SabreTools.Library.Tools
{
2019-02-08 21:03:28 -08:00
/// <summary>
/// Stopwatch class for keeping track of duration in the code
/// </summary>
public class InternalStopwatch
{
private string _subject;
private DateTime _startTime;
2019-02-08 21:03:28 -08:00
/// <summary>
/// Constructor that initalizes the stopwatch
/// </summary>
public InternalStopwatch()
{
_subject = string.Empty;
2019-02-08 21:03:28 -08:00
}
2019-02-08 21:03:28 -08:00
/// <summary>
/// Constructor that initalizes the stopwatch with a subject and starts immediately
/// </summary>
/// <param name="subject">Subject of the stopwatch</param>
public InternalStopwatch(string subject)
{
_subject = subject;
Start();
}
2019-02-08 21:03:28 -08:00
/// <summary>
/// Start the stopwatch and display subject text
/// </summary>
public void Start()
{
_startTime = DateTime.Now;
Globals.Logger.User($"{_subject}...");
2019-02-08 21:03:28 -08:00
}
2019-02-08 21:03:28 -08:00
/// <summary>
/// Start the stopwatch and display subject text
/// </summary>
/// <param name="subject">Text to show on stopwatch start</param>
public void Start(string subject)
{
_subject = subject;
Start();
}
2019-02-08 21:03:28 -08:00
/// <summary>
/// End the stopwatch and display subject text
/// </summary>
public void Stop()
{
Globals.Logger.User($"{_subject} completed in {DateTime.Now.Subtract(_startTime):G}");
2019-02-08 21:03:28 -08:00
}
}
}