private Chat CombineChats(Chat lhs, Chat rhs) { return new Chat { ChatDate = lhs.ChatDate < rhs.ChatDate ? lhs.ChatDate : rhs.ChatDate, Contact = lhs.Contact, Lines = lhs.Lines + rhs.Lines, Minutes = CombineMinutes(lhs, rhs) }; }
private int CombineMinutes(Chat lhs, Chat rhs) { var lhsEnd = lhs.ChatDate.AddMinutes(lhs.Minutes); var rhsEnd = rhs.ChatDate.AddMinutes(rhs.Minutes); var a = lhs.ChatDate < rhs.ChatDate ? lhs.ChatDate : rhs.ChatDate; var b = lhsEnd > rhsEnd ? lhsEnd : rhsEnd; return (int)(b - a).TotalMinutes; }
public IEnumerable<DateTime> GetSpanningHours(Chat chat) { var endHour = (chat.ChatDate + TimeSpan.FromMinutes(chat.Minutes)).Hour; if (endHour < chat.ChatDate.Hour) endHour += 24; return Enumerable.Range(0, endHour - chat.ChatDate.Hour + 1) .Select(i => chat.ChatDate.AddHours(i)); }
public static XElement GetXElementFromChat(Chat chat) { return new XElement("Chat", new[] { new XElement("Contact", chat.Contact), new XElement("ChatDate", chat.ChatDate), new XElement("Lines", chat.Lines), new XElement("Minutes", chat.Minutes) }); }
private DateTime GetEndTime(Chat chat) { return chat.ChatDate + TimeSpan.FromMinutes(chat.Minutes); }
public static Streak GetStreakC() { var a = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(1998, 3, 2), Lines = 26, Minutes = 14 }; var b = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(1998, 3, 3), Lines = 98, Minutes = 55 }; var c = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(1998, 3, 4), Lines = 63, Minutes = 46 }; var d = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(1998, 3, 5), Lines = 19, Minutes = 3 }; var e = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(1998, 3, 6), Lines = 30, Minutes = 44 }; var collection = new ChatCollection() { a, b, c, d, e }; return new Streak() { Contact = "*****@*****.**", StartDate = new DateTime(1998, 3, 2), EndDate = new DateTime(1998, 3, 6), ChatCollection = collection, ChatsByDay = new DayCollection(collection) }; }
public static Streak GetStreakB() { var a = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(2009, 3, 9), Lines = 63, Minutes = 164 }; var b = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(2009, 3, 10), Lines = 38, Minutes = 76 }; var c = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(2009, 3, 9), Lines = 97, Minutes = 15 }; return new Streak() { Contact = "*****@*****.**", StartDate = new DateTime(2009, 3, 9), EndDate = new DateTime(2009, 3, 10), ChatCollection = new ChatCollection() { a, b, c }, ChatsByDay = new DayCollection(new[] { new ChatCollection() { a, c }, new ChatCollection() { b } }) }; }
public static Streak GetStreakA() { var a = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(2008, 3, 3), Lines = 10, Minutes = 7 }; var b = new Chat { Contact = "*****@*****.**", ChatDate = new DateTime(2008, 3, 4), Lines = 12, Minutes = 29 }; return new Streak() { Contact = "*****@*****.**", StartDate = new DateTime(2008, 3, 3), EndDate = new DateTime(2008, 3, 4), ChatCollection = new ChatCollection() { a, b }, ChatsByDay = new DayCollection(new[] { new ChatCollection() { a }, new ChatCollection() { b } }) }; }
public static Streak GetStreakC() { var a = new Chat { Contact = "x", ChatDate = new DateTime(1998, 3, 2), Lines = 26, Minutes = 14 }; var b = new Chat { Contact = "x", ChatDate = new DateTime(1998, 3, 3), Lines = 98, Minutes = 55 }; var c = new Chat { Contact = "x", ChatDate = new DateTime(1998, 3, 4), Lines = 63, Minutes = 46 }; var d = new Chat { Contact = "x", ChatDate = new DateTime(1998, 3, 5), Lines = 19, Minutes = 3 }; var e = new Chat { Contact = "x", ChatDate = new DateTime(1998, 3, 6), Lines = 30, Minutes = 44 }; return new Streak() { StartDate = new DateTime(1998, 3, 2), EndDate = new DateTime(1998, 3, 6), ChatCollection = new ChatCollection() { a, b, c, d, e }, ChatsByDay = new DayCollection(new[] { new ChatCollection() { a }, new ChatCollection() { b }, new ChatCollection() { c }, new ChatCollection() { d }, new ChatCollection() { e } }) }; }
public ChatBuilder() { _chat = new Chat(); }