public TimeEntry GetLastTimeEntry(bool getInternal = false)
        {
            using (var cnn = GetConnection())
                using (var cmd = cnn.CreateCommand())
                {
                    var internalWhere = (getInternal) ? "" : "WHERE Internal = 0";

                    cmd.CommandText = "SELECT * FROM TimeEntries " + internalWhere + " ORDER BY Id DESC LIMIT 1";

                    using (var reader = cmd.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            return(null);
                        }

                        var timeEntry = new TimeEntry
                        {
                            TimeRecorded =
                                DateTime.SpecifyKind(reader.GetDateTime(reader.GetOrdinal("TimeRecorded")),
                                                     DateTimeKind.Local),
                            Comment        = reader.Get <string>("Comment"),
                            Id             = reader.Get <int>("Id"),
                            Task           = _localTaskRepository.GetTaskById(reader.Get <string>("TaskId")),
                            AssociatedTask = _localTaskRepository.GetTaskById(reader.Get <string>("AssociatedTaskId")),
                            Synced         = reader.Get <bool>("Synced"),
                            MinutesSpent   = reader.Get <int>("MinutesSpent"),
                            Internal       = reader.Get <bool>("Internal"),
                            Project        = _localProjectRepository.GetProjectById(reader.Get <string>("ProjectId"))
                        };

                        return(timeEntry);
                    }
                }
        }
示例#2
0
 public Task GetTaskById(string taskId)
 {
     return(_localTaskRepository.GetTaskById(taskId));
 }