using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using Octokit.Helpers;
namespace Octokit
{
///
/// Represents lines added and deleted at a given point in time
///
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class AdditionsAndDeletions
{
public AdditionsAndDeletions() { }
public AdditionsAndDeletions(DateTimeOffset timestamp, int additions, int deletions)
{
Timestamp = timestamp;
Additions = additions;
Deletions = deletions;
}
///
/// Construct an instance of AdditionsAndDeletions
///
///
/// If the list of data points is not 3 elements
public AdditionsAndDeletions(IList additionsAndDeletions)
{
Ensure.ArgumentNotNull(additionsAndDeletions, "additionsAndDeletions");
if (additionsAndDeletions.Count != 3)
{
throw new ArgumentException("Addition and deletion aggregate must only contain three data points.");
}
Timestamp = additionsAndDeletions[0].FromUnixTime();
Additions = Convert.ToInt32(additionsAndDeletions[1]);
Deletions = Convert.ToInt32(additionsAndDeletions[2]);
}
///
/// Date of the recorded activity
///
public DateTimeOffset Timestamp { get; private set; }
///
/// Lines added for the given day
///
public int Additions { get; private set; }
///
/// Lines deleted for the given day
///
public int Deletions { get; private set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture,
"{0}: Additions: {1} Deletions: {2}", Timestamp.ToString("d", CultureInfo.InvariantCulture), Additions, Deletions);
}
}
}
}