public void TimezoneTests() { var project = _service.UpdateProject(_requestUTC, new TProjectDto { Name = "test project" }); var task = _service.UpdateTask(_requestUTC, new TTaskDto { Name = "test task", TProjectID = project.TProjectID }); _service.StartTask(_requestUTC, task.TTaskID); var statusModel = _service.GetStatusModel(_requestUTC); Assert.IsTrue(statusModel.InProgress); int entryID = statusModel.LatestEntry.TEntryID; _service.StopTask(_requestUTC, task.TTaskID); var entry = _service.GetEntry(_requestUTC, entryID); var today = DateTime.Today; entry.StartDate = today.AddSeconds(-2); entry.EndDate = today.AddSeconds(-1); _service.UpdateEntry(_requestUTC, entry); var entryUTC = _service.GetEntry(_requestUTC, entryID); var entryLocal = _service.GetEntry(_requestLocal, entryID); Assert.AreEqual(entryUTC.Contrib, 1, 0.1); Assert.AreEqual(entryLocal.Contrib, 1, 0.1); var summaryUTC = _service.GetSummaryModel(_requestUTC); var summaryLocal = _service.GetSummaryModel(_requestLocal); var utcContrib = summaryUTC.Projects.Single(p => p.TProjectID == project.TProjectID).TTasks.Single(t => t.TTaskID == task.TTaskID).Contrib; var localContrib = summaryLocal.Projects.Single(p => p.TProjectID == project.TProjectID).TTasks.Single(t => t.TTaskID == task.TTaskID).Contrib; Assert.AreEqual(utcContrib.ThisMonth, 1); Assert.AreEqual(localContrib.ThisMonth, 1); Assert.AreEqual(utcContrib.Today, 0); Assert.AreNotEqual(localContrib.Today, 0); var reportUTC = _service.GetReportModel(_requestUTC, today.AddDays(-1), today.AddDays(1), project.TProjectID, 0); var reportLocal = _service.GetReportModel(_requestLocal, today.AddDays(-1), today.AddDays(1), project.TProjectID, 0); Assert.AreEqual(reportUTC.DayContribs[today.AddDays(-1)], 1); Assert.AreEqual(reportLocal.DayContribs[today], 1); Assert.AreEqual(reportUTC.TaskContribs[task.TTaskID], 1); Assert.AreEqual(reportLocal.TaskContribs[task.TTaskID], 1); }