using System; using System.Collections.Generic; using System.Linq; using Sony.Filtr.Utility.Extensions; namespace Sony.Filtr.AdminAPI.ViewModels.Graph { public static class GraphViewModelHelper { public static IEnumerable> BuildDailyChange(List> stats) { return stats.OrderBy(e => e.Date).SelectWithPrevious((previous, current) => { if (previous.Date.Date == current.Date.AddDays(-1)) { return new GraphEntry() { Date = current.Date, Value = current.Value - previous.Value }; } return null; }).Where(s => s != null); } public static ulong SumSafe(this IEnumerable source, Func projection) { ulong sum = 0; foreach (var item in source) { sum = sum + (ulong)checked((uint)projection(item)); } return sum; } } }