Exemple #1
0
        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");
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        //
        // 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);
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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;
        }