Пример #1
0
        private void ButtonSubmit_Click(object sender, EventArgs e)
        {
            using (var lDataContext = new IssueTrackerDataContext())
            {
                var lIssue = new Issue();
                lIssue.ProjectId = this.Project.Id;
                lIssue.Title = this.mTextBoxTitle.Text;
                lIssue.Body = this.mTextPreviewViewBody.Text;
                lIssue.CreationDateTime = DateTime.UtcNow;
                lIssue.LastUpdatedDateTime = DateTime.UtcNow;
                lIssue.OpenedByUser = lDataContext.CurrentUser;
                lIssue.IsOpen = true;
                lDataContext.Issues.InsertOnSubmit(lIssue);

                foreach (var lLabel in this.mSelectedLabels)
                {
                    var lIssueLabel = new IssueLabel();
                    lIssueLabel.Issue = lIssue;
                    lIssueLabel.LabelId = lLabel.Id;

                    lDataContext.IssueLabels.InsertOnSubmit(lIssueLabel);
                }

                lDataContext.SubmitChanges();

                this.IssueCreated.Fire(this, ReadOnlyValueEventArgs.Create(lIssue));
            }
        }
Пример #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            using (var lDataContext = new IssueTrackerDataContext())
            {
                this.mListBoxLabels.Items.AddRange(lDataContext.Labels.OrderBy(x => x.Name).ToArray());
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            using (var lDataContext = new IssueTrackerDataContext())
            {
                this.Issue = lDataContext.Issues.Single(x => x.Id == this.Issue.Id);

                this.mLabelAuthor.Text = this.Issue.OpenedByUser.FullName;
                this.mLabelAuthorFooter.Text = "opened this issue " + (DateTime.UtcNow - this.Issue.CreationDateTime).ToRelativePastTimeString();
                this.mLabelTitle.Text = this.Issue.Title;
                this.mLabelAssignedUser.Text = this.Issue.AssignedUser.Get(x => x.FullName, string.Empty);
                this.mLabelMilestone.Text = this.Issue.Milestone.Get(x => x.Title, string.Empty);
                this.mHtmlPanel.Text = MarkdownHelper.TranslateWithStyle(this.Issue.Body);

                this.mListBoxLabels.Items.AddRange(
                    this.Issue.IssueLabels.Select(x => x.Label).OrderBy(x => x.Name).ToArray());
            }
        }
Пример #4
0
        /// <summary>
        /// When the create button is clicked, we inform the world to commit changes.
        /// </summary>
        private void ButtonCreate_Click(object sender, EventArgs e)
        {
            var lProject = new Project();
            lProject.Name = this.mTextBoxTitle.Name;
            lProject.Description = this.mTextPreviewViewBody.Text;
            lProject.CreationDateTIme = DateTime.UtcNow;

            using (var lDataContext = new IssueTrackerDataContext())
            {
                var lProjectUser = new ProjectUser();
                lProjectUser.Project = lProject;
                lProjectUser.User = lDataContext.CurrentUser;

                lDataContext.Projects.InsertOnSubmit(lProject);
                lDataContext.ProjectUsers.InsertOnSubmit(lProjectUser);

                lDataContext.SubmitChanges();
            }

            this.ProjectCreated.Fire(this, ReadOnlyValueEventArgs.Create(lProject));
        }
        private void ButtonUpdate_Click(object sender, EventArgs e)
        {
            using (var lDataContext = new IssueTrackerDataContext())
            {
                this.Issue = lDataContext.Issues.Single(x => x.Id == this.Issue.Id);
                this.Issue.LastUpdatedDateTime = DateTime.UtcNow;
                this.Issue.Title = this.mTextBoxTitle.Text;
                this.Issue.Body = this.mTextPreviewViewBody.Text;
                lDataContext.SubmitChanges();
            }

            this.mLabelTitle.Text = this.Issue.Title;
            this.mHtmlPanel.Text = MarkdownHelper.TranslateWithStyle(this.Issue.Body);
            this.mHtmlPanel.Visible = true;
        }
Пример #6
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.RootControlHost = new SelectProjectView();
            this.ControlHosts.Push(this.RootControlHost);
            this.ShowControlHost(this.RootControlHost);

            using (var lDataContext = new IssueTrackerDataContext())
            {
                var lProjects = lDataContext.Projects.ToArray();

                this.mListBoxProjects.Items.AddRange(lProjects);
                this.mListBoxProjects.Items.Add("Create New Project...");
            }
        }
Пример #7
0
        private void RefreshIssues()
        {
            using (var lDataContext = new IssueTrackerDataContext())
            {
                var lProjectIssues = lDataContext.Issues
                    .Where(x => x.ProjectId == this.Project.Id);

                if (!string.IsNullOrWhiteSpace(this.mTextBoxSearch.Text))
                {
                    lProjectIssues = lProjectIssues
                        .Where(x => x.Title.Contains(this.mTextBoxSearch.Text));
                }

                switch (this.SelectedFilter)
                {
                    case IssueFilter.AssignedToCurrentUser:
                        lProjectIssues = lProjectIssues
                            .Where(x => x.AssignedUser == lDataContext.CurrentUser);
                        break;

                    case IssueFilter.CreatedByCurrentUser:
                        lProjectIssues = lProjectIssues
                            .Where(x => x.OpenedByUser == lDataContext.CurrentUser);
                        break;
                }

                var lOpenIssues = lProjectIssues.Where(x => x.IsOpen).ToArray();
                this.mTabPageOpenIssues.Text = string.Format("{0} open issue{1}", lOpenIssues.Length, (lOpenIssues.Length == 1) ? string.Empty : "s");
                this.mListBoxOpenIssues.Items.Clear();
                this.mListBoxOpenIssues.Items.AddRange(lOpenIssues);

                var lClosedIssues = lProjectIssues.Where(x => !x.IsOpen).ToArray();
                this.mTabPageClosedIssues.Text = string.Format("{0} closed issue{1}", lClosedIssues.Length, (lClosedIssues.Length == 1) ? string.Empty : "s");
                this.mListBoxClosedIssues.Items.Clear();
                this.mListBoxClosedIssues.Items.AddRange(lClosedIssues);
            }
        }