static void Main(string[] args) { var begin = DateTime.Now.AddDays(-10); var end = DateTime.Now.AddDays(-1); var togglProjectName = Environment.GetEnvironmentVariable("TOGGL_PROJECT_NAME"); Console.WriteLine($"Loading account data for project '{togglProjectName}'..."); var harvestApi = new HarvestApi( Environment.GetEnvironmentVariable("HARVEST_EMAIL"), Environment.GetEnvironmentVariable("HARVEST_PASSWORD"), Environment.GetEnvironmentVariable("HARVEST_DOMAIN")); List <ProjectResponse> projects = harvestApi.Projects(); int harvestProjectId = projects.First().project.id; var harvestEntries = harvestApi.GetEntries(harvestProjectId, begin, end); var togglApi = new TogglApi(Environment.GetEnvironmentVariable("TOGGL_API_KEY")); var infos = togglApi.GetAccountInfos(); int togglWorkspaceId = infos.data.workspaces.First().id; var project = togglApi.GetProjectByName(togglProjectName, togglWorkspaceId); var entries = togglApi.GetEntries(project.id, begin, end); var report = togglApi.Report(project.id, togglWorkspaceId, begin, end); var users = togglApi.GetUsers(togglWorkspaceId); Console.WriteLine($"Found {entries.Length} Toggl entries"); int tasksSynchronized = 0; foreach (var timeEntry in report) { var harvestEntry = harvestEntries.FirstOrDefault(i => i.day_entry.notes.StartsWith($"[{timeEntry.id}]")); if (harvestEntry == null) { Console.WriteLine($"Inserting {timeEntry.start:d} {timeEntry.description}"); var user = users.First(i => i.id == timeEntry.uid); harvestApi.CreateEntry(new CreateTimeEntryRequest() { SpentAt = timeEntry.start, hours = ((double)timeEntry.dur / 1000) / 3600, notes = $"[{timeEntry.id}] [{user.fullname}] {timeEntry.description}", project_id = harvestProjectId.ToString(), task_id = timeEntry.id.ToString(), }); tasksSynchronized++; } } Console.WriteLine($"Done! {tasksSynchronized} task(s) synchronized"); }
public static async Task <(Email email, Password password)> CreateEmailPassword() { var email = $"{Guid.NewGuid()}@mocks.toggl.com".ToEmail(); var password = "******".ToPassword(); var api = new TogglApi(new ApiConfiguration(ApiEnvironment.Staging, Credentials.None, Configuration.UserAgent)); await api.User.SignUp(email, password, true, 237); return(email, password); }
// // GET: /Home/ public ActionResult Index() { TogglAuthRequest auth = new TogglAuthRequest { ApiToken = "67be300bcfc9c09f40636074303ce3ff" }; TogglApi api = new TogglApi(auth); var val = api.Users.GetCurrent(); var clients = api.Clients.Get(); ViewBag.Content = val.ToString(); return View(); }
static void Main(string[] args) { if (args.Count() != 1) { Console.WriteLine("Please provide your Toggle API token from your account"); } else { //create a new togglAPI passing in the first argument as the API token TogglApi api = new TogglApi(args[0]); //grab all tasks from the beginning of the day until now string start = DateTime.Today.ToString("o");// "2013-04-25"; string end = DateTime.Now.ToString("o");// "2013-04-26"; TimeEntries Result = api.GetTimeEntries(start, end); Output(Result); } }
static void Main(string[] args) { if (args.Count() != 1) { Console.WriteLine("Please provide your Toggle API token from your account"); } else { //create a new togglAPI passing in the first argument as the API token TogglApi api = new TogglApi(args[0]); //grab all tasks from the beginning of the day until now string start = DateTime.Today.ToString("o"); // "2013-04-25"; string end = DateTime.Now.ToString("o"); // "2013-04-26"; TimeEntries Result = api.GetTimeEntries(start, end); Output(Result); } }
public SettingsForm() { InitializeComponent(); _togglApi = new TogglApi(); textBox_userToken.Text = Settings.Default.ACCESS_TOKEN; checkBox1.Checked = Settings.Default.RUN_AT_STARTUP; if (textBox_userToken.Text == String.Empty) { button_testConnection.Enabled = false; button3.Enabled = false; ShowBallon("Toggl Sleeper", "Click on this icon and set your Toggl Access Token."); } SystemEvents.PowerModeChanged += OnPowerChange; notifyIcon1.BalloonTipClicked += notifyIcon_BalloonTipClicked; }