private void Login(object sender)
 {
     if (ApiToken == string.Empty)
     {
         MessageBox.Show("Api Token can't be empty!", "Error", MessageBoxButton.OK, MessageBoxImage.Warning);
         return;
     }
     toggl = new Toggl.Toggl(ApiToken);
     GetReport(false);
 }
 public ReportViewModel()
 {
     btnLoginClick           = new RelayCommand(Login);
     btnCopyToClipboardClick = new RelayCommand(CopyToClipboard);
     btnSaveAsCSVClick       = new RelayCommand(SaveAsCSV);
     if (TogglUser.Instance.ApiToken != string.Empty)
     {
         toggl = new Toggl.Toggl(TogglUser.Instance.ApiToken);
     }
     GetReport(true);
 }
Exemplo n.º 3
0
        public Task PushTime(AppSetting settings, DateTime startDate, DateTime endDate)
        {
            //tra-74

            if (settings == null)
                throw new Exception("No Jira or Toggl credentials provided.");
            this.VerifySetting(settings.JiraLogin, "JIRA login");
            this.VerifySetting(settings.JiraPassword, "JIRA password");
            this.VerifySetting(settings.JiraUrl, "JIRA URL");
            this.VerifySetting(settings.TogglApiKey, "Toggl API Key");

            var jira = new Jira(settings.JiraUrl, settings.JiraLogin, settings.JiraPassword);
            var toggl = new Toggl.Toggl(settings.TogglApiKey);

            return Task.Run(() =>
                {
                    var timeService = new TimeEntryService(settings.TogglApiKey);
                    var timeParams = new TimeEntryParams();

                    timeParams.StartDate = startDate.Date;
                    timeParams.EndDate = endDate.Date;

                    foreach (var te in timeService.List(timeParams).Where(w => (w.TagNames == null || !w.TagNames.Contains(POSTED_TAG))
                                                                                && !string.IsNullOrEmpty(w.Description)))
                    {
                        KeyValuePair<string, string> description = this.ParseDescription(te.Description);
                        if (string.IsNullOrEmpty(description.Key))
                            continue;

                        var issue = jira.GetIssue(description.Key);
                        issue.AddWorklog(new Worklog(this.GetMinutes(te.Duration.GetValueOrDefault()), DateTime.Parse(te.Start), description.Value));
                        if (te.TagNames == null)
                            te.TagNames = new List<string>();
                        te.TagNames.Add(POSTED_TAG);
                        timeService.Edit(te);
                    }
                });

            //return Task.Run(() =>
            //    {
            //        //Atlassian.Jira.Jira aa = new Atlassian.Jira.Jira("urlhere", "loginhere", "passwordhere");
            //        //var issue = aa.GetIssue("FLW6-2247");
            //        //issue.AddWorklog(new Atlassian.Jira.Worklog)

            //        //var apiKey = "apikeyhere";
            //        //var t = new Toggl.Toggl(apiKey);
            //        //var c = t.User.GetCurrent();

            //        //var timeSrv = new Toggl.Services.TimeEntryService(apiKey);
            //        //var prams = new Toggl.QueryObjects.TimeEntryParams();

            //        //// there is an issue with the date ranges have
            //        //// to step out of the range on the end.
            //        //// To capture the end of the billing range day + 1
            //        //prams.StartDate = DateTime.Now.AddMonths(-1);
            //        //prams.EndDate = DateTime.Now.AddMonths(1);

            //        //var hours = timeSrv.List(prams)
            //        //                        .Where(w => !string.IsNullOrEmpty(w.Description)).ToList();
            //    });
        }