using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
var links = new Dictionary<string, List<string>>();
foreach(var rows in dataSet.Split("\n"))
var datas = rows.Split("\t");
(string Id, string Time) data = (datas[0], datas[1]);
var time = datas[1].Split(":");
int.TryParse(time.Length >= 1 ? time[0] : "0", out int hours);
int.TryParse(time.Length >= 2 ? time[1] : "0", out int minutes);
int.TryParse(time.Length >= 3 ? time[2] : "0", out int seconds);
Console.WriteLine($"{(((((days*24)+hours)*60)+minutes)*60)} sec | {((days*24)+hours).ToString("000")}:{(minutes).ToString("00")}:00 | {data.Id} | {data.Time}");
if(links.ContainsKey(datas[0]))
links[datas[0]].Add(datas[1]);
links.Add(datas[0], new List<string>{datas[1]});
Console.WriteLine($"{System.Environment.NewLine}{System.Environment.NewLine}Grouped Data");
foreach(var rows in links)
foreach(var data in rows.Value)
var time = data.Split(":");
int.TryParse(time.Length >= 1 ? time[0] : "0", out int hours);
int.TryParse(time.Length >= 2 ? time[1] : "0", out int minutes);
int.TryParse(time.Length >= 3 ? time[2] : "0", out int seconds);
var dayRegex = new Regex(@".\d(?= Day)", RegexOptions.IgnoreCase);
link_days = link_days + days;
link_hours = link_hours + hours;
link_minutes = link_minutes + minutes;
totalHours = totalHours + (link_days * 24) + link_hours;
totalMinutes = totalMinutes + link_minutes;
Console.WriteLine($"{rows.Key} | {rows.Value.Count} | {(((link_days * 24) + link_hours) *60 + link_minutes) * 60} sec | {((link_days*24)+link_hours + (link_minutes/60)).ToString("000")}:{(link_minutes%60).ToString("00")}:00 | {TimeSpan.FromMinutes(link_minutes + ((link_days*24)+link_hours)*60).Humanize(7)}");
Console.WriteLine($"{System.Environment.NewLine}{System.Environment.NewLine}Total DownTime");
Console.WriteLine($"{(totalMinutes + (totalHours)*60) * 60} sec | {(totalHours + (totalMinutes/60)).ToString("000")}:{(totalMinutes%60).ToString("00")}:00 | {TimeSpan.FromMinutes(totalMinutes + (totalHours)*60).Humanize(7)}");