示例#1
0
        public void Go()
        {
            var rep = new BugRepository();
            foreach (var issue in rep.GetBugs().Select(bug => new Issue()
                                                                {
                                                                    Summary = bug.Summary,
                                                                    Description = PandocHelper.Convert(bug.Description).Replace("<br />", string.Empty),
                                                                    Assignee = "Unassigned",
                                                                    State = MapBugStatus(bug.Status),
                                                                    Type = "Bug",
                                                                    ProjectShortName = "EJ"
                                                                }))
            {
                var conn = new Connection("localhost", 2669);
                conn.Authenticate("root", "10Pounds");

                var issueManagement = new IssueManagement(conn);

                issueManagement.CreateIssue(issue);
            }
        }
示例#2
0
        public ActionResult New(NewIssueModel model)
        {
            if (ModelState.IsValid)
            {

                var issueManagement = new IssueManagement(UserSession.Connection);

                var issue = new Issue()
                              {
                                  Description = model.Description,
                                  ProjectShortName = model.Project,
                                  Summary = model.Summary,
                                  Type = model.Type,
                                  ReporterName = UserSession.Username

                              };
                issueManagement.CreateIssue(issue);

                return RedirectToAction("Index", "Home");
            }
            return View(model);
        }
        /// <summary>
        /// Using YouTrackSharp here. We can't submit
        /// the report as if it were from this person, even if they have an account (well, not without
        /// asking them for credentials, which is just not gonna happen). So we submit with an
        /// account we created just for this purpose, "auto_report_creator".
        /// </summary>
        private bool SubmitToYouTrack()
        {
            try
            {
                ChangeState(State.Submitting);

                _youTrackConnection.Authenticate("auto_report_creator", "thisIsInOpenSourceCode");
                _issueManagement = new IssueManagement(_youTrackConnection);
                _youTrackIssue = new Issue();
                _youTrackIssue.ProjectShortName = _youTrackProjectKey;
                _youTrackIssue.Type = "Awaiting Classification";
                _youTrackIssue.Summary = string.Format(Summary,_name.Text);
                _youTrackIssue.Description = GetFullDescriptionContents(false);
                _youTrackIssueId = _issueManagement.CreateIssue(_youTrackIssue);

                // this could all be done in one go, but I'm doing it in stages so as to increase the
                // chance of success in bad internet situations
                if (_includeScreenshot.Checked)
                {
                    using (var file = TempFile.WithFilenameInTempFolder("screenshot.png"))
                    {
                        SIL.IO.RobustIO.SaveImage(_screenshot, file.Path, ImageFormat.Png);
                        AddAttachment(file.Path);
                    }
                }

                if (Logger.Singleton != null)
                {
                    try
                    {
                        using (var logFile = GetLogFile())
                        {
                            AddAttachment(logFile.Path);
                        }
                    }
                    catch (Exception e)
                    {
                        _youTrackIssue.Description += System.Environment.NewLine + "***Got exception trying to attach log file: " + e.Message;
                        _issueManagement.UpdateIssue(_youTrackIssueId, _youTrackIssue.Summary, _youTrackIssue.Description);
                    }
                }

                if (_includeBook.Visible && _includeBook.Checked) // only Visible if Book is not null
                {
                    ChangeState(State.UploadingBook);
                    using (var bookZip = TempFile.WithFilenameInTempFolder(_youTrackIssueId + ".zip"))
                    {
                        var progress = new StatusProgress();
                        try
                        {
                            var zip = new BloomZipFile(bookZip.Path);
                            zip.AddDirectory(Book.FolderPath);
                            zip.Save();
                        }
                        catch (Exception error)
                        {
                            _youTrackIssue.Description += System.Environment.NewLine + "***Error as ProblemReporterDialog attempted to zip up the book: " + error.Message;
                            _issueManagement.UpdateIssue(_youTrackIssueId, _youTrackIssue.Summary, _youTrackIssue.Description);
                            Logger.WriteEvent("*** Error as ProblemReporterDialog attempted to zip up the book. " + error.Message);
                            // if an error happens in the zipper, the zip file stays locked, so we just leak it
                            bookZip.Detach();
                            _shortErrorHtml += " Error Zipping Book ";
                            throw;
                        }

                        try
                        {
                            string url = ProblemBookUploader.UploadBook(BloomS3Client.ProblemBookUploadsBucketName, bookZip.Path,
                                progress);
                            _youTrackIssue.Description += System.Environment.NewLine + url;
                            _issueManagement.UpdateIssue(_youTrackIssueId, _youTrackIssue.Summary, _youTrackIssue.Description);
                        }
                        catch (Exception error)
                        {
                            Logger.WriteError(progress.LastError, error);
                            _youTrackIssue.Description += System.Environment.NewLine + "***Got exception trying upload book: " + error.Message;
                            _issueManagement.UpdateIssue(_youTrackIssueId, _youTrackIssue.Summary, _youTrackIssue.Description);
                            _shortErrorHtml += " Uploading Book Failed ";
                        }
                    }
                }

                ChangeState(State.Success);
                return true;
            }
            catch (Exception error)
            {
                Debug.Fail(error.Message);
                return false;
            }
        }