|
#region Copyright
// Diagnostic Explorer, a .Net diagnostic toolset
// Copyright (C) 2010 Cameron Elliot
//
// This file is part of Diagnostic Explorer.
//
// Diagnostic Explorer is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Diagnostic Explorer is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with Diagnostic Explorer. If not, see <http://www.gnu.org/licenses/>.
//
// http://diagexplorer.sourceforge.net/
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace DiagnosticExplorer
{
internal class DateGetter : PropertyGetter
{
private bool _exposeDate = true;
private bool _exposeElapsed = false;
public DateGetter(PropertyInfo prop, DatePropertyAttribute attr) : base(prop)
{
if (attr != null)
{
_exposeDate = attr.ExposeDate;
_exposeElapsed = attr.ExposeElapsed;
}
}
public override IEnumerable<Property> GetProperties(object obj)
{
DateTime? dateVal = (DateTime?)prop.GetValue(obj, null);
if (_exposeDate)
{
foreach (Property p in GetBaseProperties(obj))
yield return p;
}
if (_exposeElapsed)
{
string val = dateVal == null ? "" : FormatTimeSpan(DateTime.Now.Subtract(dateVal.Value));
yield return new Property("Time since " + Name, Category, val);
}
}
private IEnumerable<Property> GetBaseProperties(object obj)
{
return base.GetProperties(obj);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I am a software developer originally from Auckland, New Zealand. I have lived and worked in London since 2005.