#region License
// Copyright (c) 2007 James Newton-King
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
#endregion
using System;
namespace Newtonsoft.Json.Tests.TestObjects{
/// <summary>
/// What types of events are there? Just sticking to a basic set of four for now.
/// </summary>
/// <remarks></remarks>
public enum EventType
{
Debug = 0,
Info = 1,
Warning = 2,
Error = 3
}
public sealed class Event
{
/// <summary>
/// If no current user is specified, returns Nothing (0 from VB)
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
private static int GetCurrentUserId()
{
return 0;
}
/// <summary>
/// Gets either the application path or the current stack trace.
/// NOTE: You MUST call this from the top level entry point. Otherwise,
/// the stack trace will be buried in Logger itself.
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
private static string GetCurrentSubLocation()
{
return "";
}
private string _sublocation;
private int _userId;
private EventType _type;
private string _summary;
private string _details;
private string _stackTrace;
private string _tag;
private DateTime _time;
public Event(string summary)
{
_summary = summary;
_time = DateTime.Now;
if (_userId == 0) _userId = GetCurrentUserId();
//This call only works at top level for now.
//If _stackTrace = Nothing Then _stackTrace = Environment.StackTrace
if (_sublocation == null) _sublocation = GetCurrentSubLocation();
}
public Event(string sublocation, int userId, EventType type, string summary, string details, string stackTrace, string tag)
{
_sublocation = sublocation;
_userId = userId;
_type = type;
_summary = summary;
_details = details;
_stackTrace = stackTrace;
_tag = tag;
_time = DateTime.Now;
if (_userId == 0) _userId = GetCurrentUserId();
//If _stackTrace = Nothing Then _stackTrace = Environment.StackTrace
if (_sublocation == null) _sublocation = GetCurrentSubLocation();
}
public override string ToString()
{
return string.Format("{{ sublocation = {0}, userId = {1}, type = {2}, summary = {3}, details = {4}, stackTrace = {5}, tag = {6} }}", _sublocation, _userId, _type, _summary, _details, _stackTrace, _tag);
}
public string sublocation
{
get { return _sublocation; }
set { _sublocation = value; }
}
public int userId
{
get { return _userId; }
set { _userId = value; }
}
public EventType type
{
get { return _type; }
set { _type = value; }
}
public string summary
{
get { return _summary; }
set { _summary = value; }
}
public string details
{
get { return _details; }
set { _details = value; }
}
public string stackTrace
{
get { return _stackTrace; }
set { _stackTrace = value; }
}
public string tag
{
get { return _tag; }
set { _tag = value; }
}
public DateTime time
{
get { return _time; }
}
}
}
|