public void Edit()
        {
            var timeEntry = TimeEntryService.Add(new TimeEntry()
            {
                IsBillable  = true,
                CreatedWith = "TogglAPI.Net",
                Duration    = 900,
                Start       = DateTime.Now.ToIsoDateStr(),
                WorkspaceId = DefaultWorkspaceId
            });

            Assert.IsNotNull(timeEntry);

            var loadedTimeEntry = TimeEntryService.Get(timeEntry.Id.Value);

            Assert.IsNotNull(loadedTimeEntry);

            loadedTimeEntry.Duration = 1200;
            var editedTimeEntry = TimeEntryService.Edit(loadedTimeEntry);

            Assert.AreEqual(timeEntry.Id, editedTimeEntry.Id);
            Assert.AreEqual(timeEntry.IsBillable, editedTimeEntry.IsBillable);
            Assert.AreEqual(timeEntry.CreatedWith, editedTimeEntry.CreatedWith);
            Assert.AreEqual(loadedTimeEntry.Duration, editedTimeEntry.Duration);
            Assert.AreEqual(timeEntry.WorkspaceId, editedTimeEntry.WorkspaceId);
        }
        public void Edit()
        {
            var tags = new List <string>();

            tags.Add("one");
            tags.Add("two");

            var exp = new TimeEntry()
            {
                Id          = Constants.DefaultTimeEntryId,
                IsBillable  = true,
                CreatedWith = "TimeEntryTestAdd",
                Description = "Test Desc" + DateTime.Now.Ticks,
                Duration    = 1000,
                Start       = DateTime.Now.ToIsoDateStr(),
                //Stop =  DateTime.Now.AddMinutes(20).ToIsoDateStr(),
                ProjectId   = Constants.DefaultProjectId,
                TagNames    = tags,
                WorkspaceId = Constants.DefaultWorkspaceId
            };

            exp = timeEntrySrv.Add(exp);

            Assert.NotNull(exp);
            Assert.Greater(exp.Id, 0);

            exp = timeEntrySrv.Get(exp.Id.Value);

            exp.Duration    += 1000;
            exp.Description += "more by edit";
            tags.Add(exp.Duration.ToString());
            exp.TagNames = tags;



            var act = timeEntrySrv.Edit(exp);

            Assert.NotNull(act);
            Assert.Greater(act.Id, 0);
            Assert.AreEqual(act.Id, exp.Id);
        }
        public void EditTaskId()
        {
            var task1 = TaskService.Add(new Task
            {
                IsActive         = true,
                Name             = "task1",
                EstimatedSeconds = 3600,
                WorkspaceId      = DefaultWorkspaceId,
                ProjectId        = DefaultProjectId
            });

            Assert.IsNotNull(task1);

            var task2 = TaskService.Add(new Task
            {
                IsActive         = true,
                Name             = "task2",
                EstimatedSeconds = 3600,
                WorkspaceId      = DefaultWorkspaceId,
                ProjectId        = DefaultProjectId
            });

            Assert.IsNotNull(task2);

            for (int i = 0; i < 3; i++)
            {
                var timeEntry = TimeEntryService.Add(new TimeEntry()
                {
                    IsBillable  = true,
                    CreatedWith = "TogglAPI.Net",
                    Duration    = 900,
                    Start       = DateTime.Now.ToIsoDateStr(),
                    WorkspaceId = DefaultWorkspaceId,
                    TaskId      = task1.Id
                });

                Assert.IsNotNull(timeEntry);
            }

            for (int i = 0; i < 3; i++)
            {
                var timeEntry = TimeEntryService.Add(new TimeEntry()
                {
                    IsBillable  = true,
                    CreatedWith = "TogglAPI.Net",
                    Duration    = 900,
                    Start       = DateTime.Now.ToIsoDateStr(),
                    WorkspaceId = DefaultWorkspaceId,
                    TaskId      = task2.Id
                });

                Assert.IsNotNull(timeEntry);
            }

            Assert.AreEqual(3, TimeEntryService.List().Count(te => te.TaskId == task1.Id));
            Assert.AreEqual(3, TimeEntryService.List().Count(te => te.TaskId == task2.Id));

            var task2TimeEntries = TimeEntryService.List().Where(te => te.TaskId == task2.Id).ToList();

            foreach (var timeEntry in task2TimeEntries)
            {
                timeEntry.TaskId = task1.Id;
                Assert.IsNotNull(TimeEntryService.Edit(timeEntry));
            }

            Assert.AreEqual(6, TimeEntryService.List().Count(te => te.TaskId == task1.Id));
            Assert.AreEqual(0, TimeEntryService.List().Count(te => te.TaskId == task2.Id));
        }