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;
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 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);
 }
Esempio n. 6
0
        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)
            };
        }
Esempio n. 7
0
 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 } })
     };
 }
Esempio n. 8
0
 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 } })
     };
 }
Esempio n. 9
0
        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 }
                    })
            };
        }
Esempio n. 10
0
 public ChatBuilder()
 {
     _chat = new Chat();
 }