public void Merge(int masterTaskId, int[] slaveTasksIds, int workspaceId, string userAgent = "TogglAPI.Net")
        {
            var reportService = new ReportService(this.ToggleSrv);
            var timeEntryService = new TimeEntryService(this.ToggleSrv);

            var reportParams = new DetailedReportParams()
            {
                UserAgent = userAgent,
                WorkspaceId = workspaceId,
                TaskIds = string.Join(",", slaveTasksIds.Select(id => id.ToString())),
                Since = DateTime.Now.AddYears(-1).ToIsoDateStr()
            };

            var result = reportService.Detailed(reportParams);

            if (result.TotalCount > result.PerPage)
                result = reportService.FullDetailedReport(reportParams);

            foreach (var reportTimeEntry in result.Data)
            {
                var timeEntry = timeEntryService.Get(reportTimeEntry.Id.Value);
                timeEntry.TaskId = masterTaskId;
                var editedTimeEntry = timeEntryService.Edit(timeEntry);
                if (editedTimeEntry == null)
                    throw new ArgumentNullException(string.Format("Can't edit timeEntry #{0}", reportTimeEntry.Id));
            }

            foreach (var slaveTaskId in slaveTasksIds)
            {
                if (!Delete(slaveTaskId))
                    throw new InvalidOperationException(string.Format("Can't delte task #{0}", slaveTaskId));
            }
        }
        public void Merge(int masterTaskId, int slaveTaskId, int workspaceId, string userAgent = "TogglAPI.Net")
        {
            var reportService = new ReportService(this.ToggleSrv);
            var timeEntryService = new TimeEntryService(this.ToggleSrv);

            var reportParams = new DetailedReportParams()
            {
                UserAgent = userAgent,
                WorkspaceId = workspaceId,
                TaskIds = slaveTaskId.ToString(),
                Since = DateTime.Now.AddYears(-1).ToIsoDateStr()
            };

            var result = reportService.Detailed(reportParams);

            if (result.TotalCount > result.PerPage)
                result = reportService.FullDetailedReport(reportParams);

            foreach (var reportTimeEntry in result.Data)
            {
                var timeEntry = timeEntryService.Get(reportTimeEntry.Id.Value);
                timeEntry.TaskId = masterTaskId;
                try
                {
                    var editedTimeEntry = timeEntryService.Edit(timeEntry);
                }
                catch (Exception ex)
                {
                    var res = ex.Data;
                }
            }

            if (!Delete(slaveTaskId))
                throw new InvalidOperationException(string.Format("Can't delte task #{0}", slaveTaskId));
        }
		public void Merge(int masterTaskId, int[] slaveTasksIds, int workspaceId, string userAgent = "TogglAPI.Net")
		{
			var reportService = new ReportService(this.ToggleSrv);
			var timeEntryService = new TimeEntryService(this.ToggleSrv);

			var reportParams = new DetailedReportParams()
			{
				UserAgent = userAgent,
				WorkspaceId = workspaceId,
				TaskIds = string.Join(",", slaveTasksIds.Select(id => id.ToString())),
				Since = DateTime.Now.AddYears(-1).ToIsoDateStr()
			};

			var result = reportService.Detailed(reportParams);

			if (result.TotalCount > result.PerPage)
				result = reportService.FullDetailedReport(reportParams);

			foreach (var reportTimeEntry in result.Data)
			{
				var timeEntry = timeEntryService.Get(reportTimeEntry.Id.Value);
				timeEntry.TaskId = masterTaskId;
				var editedTimeEntry = timeEntryService.Edit(timeEntry);
				if (editedTimeEntry == null)
					throw new ArgumentNullException(string.Format("Can't edit timeEntry #{0}", reportTimeEntry.Id));
			}

			foreach (var slaveTaskId in slaveTasksIds)
			{
				if (!Delete(slaveTaskId))
					throw new InvalidOperationException(string.Format("Can't delte task #{0}", slaveTaskId));	
			}			
		}
		public void Merge(int masterTaskId, int slaveTaskId, int workspaceId, string userAgent = "TogglAPI.Net")
	    {
		    var reportService = new ReportService(this.ToggleSrv);
		    var timeEntryService = new TimeEntryService(this.ToggleSrv);

			var reportParams = new DetailedReportParams()
								{
									UserAgent = userAgent,
									WorkspaceId = workspaceId,
									TaskIds = slaveTaskId.ToString(),
									Since = DateTime.Now.AddYears(-1).ToIsoDateStr()
								};

		    var result = reportService.Detailed(reportParams);

			if (result.TotalCount > result.PerPage)
				result = reportService.FullDetailedReport(reportParams);

		    foreach (var reportTimeEntry in result.Data)
		    {
			    var timeEntry = timeEntryService.Get(reportTimeEntry.Id.Value);
				timeEntry.TaskId = masterTaskId;
			    try
			    {
				    var editedTimeEntry = timeEntryService.Edit(timeEntry);
			    }
			    catch (Exception ex)
			    {
				    var res = ex.Data;
			    }			    
		    }

		    if (!Delete(slaveTaskId))
				throw new InvalidOperationException(string.Format("Can't delte task #{0}", slaveTaskId));
	    }