예제 #1
0
        /// <summary>
        /// Send notifications for the new issue
        /// </summary>
        /// <param name="issue">The issue generated from the email</param>
        void SendNotifications(Issue issue)
        {
            if (issue == null)
            {
                return;
            }

            List <DefaultValue> defValues     = IssueManager.GetDefaultIssueTypeByProjectId(issue.ProjectId);
            DefaultValue        selectedValue = defValues.FirstOrDefault();

            if (selectedValue != null)
            {
                if (selectedValue.OwnedByNotify)
                {
                    var oUser = UserManager.GetUser(issue.OwnerUserName);
                    if (oUser != null)
                    {
                        var notify = new IssueNotification {
                            IssueId = issue.Id, NotificationUsername = oUser.UserName
                        };
                        IssueNotificationManager.SaveOrUpdate(notify);
                    }
                }

                if (selectedValue.AssignedToNotify)
                {
                    var oUser = UserManager.GetUser(issue.AssignedUserName);
                    if (oUser != null)
                    {
                        var notify = new IssueNotification {
                            IssueId = issue.Id, NotificationUsername = oUser.UserName
                        };
                        IssueNotificationManager.SaveOrUpdate(notify);
                    }
                }
            }

            //send issue notifications
            IssueNotificationManager.SendIssueAddNotifications(issue.Id);
        }
예제 #2
0
        /// <summary>
        /// Binds the default values.
        /// </summary>
        private void BindDefaultValues()
        {
            List <DefaultValue> defValues     = IssueManager.GetDefaultIssueTypeByProjectId(ProjectId);
            DefaultValue        selectedValue = defValues.FirstOrDefault();

            if (selectedValue != null)
            {
                DropIssueType.SelectedValue         = selectedValue.IssueTypeId;
                DropPriority.SelectedValue          = selectedValue.PriorityId;
                DropResolution.SelectedValue        = selectedValue.ResolutionId;
                DropCategory.SelectedValue          = selectedValue.CategoryId;
                DropMilestone.SelectedValue         = selectedValue.MilestoneId;
                DropAffectedMilestone.SelectedValue = selectedValue.AffectedMilestoneId;

                if (selectedValue.AssignedUserName != "none")
                {
                    DropAssignedTo.SelectedValue = selectedValue.AssignedUserName;
                }

                if (selectedValue.OwnerUserName != "none")
                {
                    DropOwned.SelectedValue = selectedValue.OwnerUserName;
                }

                DropStatus.SelectedValue = selectedValue.StatusId;

                if (selectedValue.IssueVisibility == 0)
                {
                    chkPrivate.Checked = false;
                }
                if (selectedValue.IssueVisibility == 1)
                {
                    chkPrivate.Checked = true;
                }

                // Date
                if (selectedValue.DueDate.HasValue)
                {
                    DateTime date = DateTime.Today;
                    date = date.AddDays(selectedValue.DueDate.Value);
                    DueDatePicker.SelectedValue = date;
                }

                ProgressSlider.Text = selectedValue.Progress.ToString();
                txtEstimation.Text  = selectedValue.Estimation.ToString();

                // Visibility Section
                IssueTypeField.Visible         = selectedValue.TypeVisibility;
                StatusField.Visible            = selectedValue.StatusVisibility;
                PriorityField.Visible          = selectedValue.PriorityVisibility;
                PrivateField.Visible           = selectedValue.PrivateVisibility;
                CategoryField.Visible          = selectedValue.CategoryVisibility;
                DueDateField.Visible           = selectedValue.DueDateVisibility;
                ProgressField.Visible          = selectedValue.PercentCompleteVisibility;
                MilestoneField.Visible         = selectedValue.MilestoneVisibility;
                EstimationField.Visible        = selectedValue.EstimationVisibility;
                ResolutionField.Visible        = selectedValue.ResolutionVisibility;
                AffectedMilestoneField.Visible = selectedValue.AffectedMilestoneVisibility;
                AssignedToField.Visible        = selectedValue.AssignedToVisibility;
                OwnedByField.Visible           = selectedValue.OwnedByVisibility;
                chkNotifyAssignedTo.Checked    = selectedValue.AssignedToNotify;
                chkNotifyOwner.Checked         = selectedValue.OwnedByNotify;
            }
        }
예제 #3
0
        /// <summary>
        /// Binds the values.
        /// </summary>
        private void BindValues(Issue currentIssue)
        {
            BindOptions();

            lblIssueNumber.Text = string.Concat(currentIssue.FullId, ":");
            TitleLabel.Text     = Server.HtmlDecode(currentIssue.Title);

            DropIssueType.SelectedValue  = currentIssue.IssueTypeId;
            DropResolution.SelectedValue = currentIssue.ResolutionId;
            DropStatus.SelectedValue     = currentIssue.StatusId;
            DropPriority.SelectedValue   = currentIssue.PriorityId;
            DropOwned.SelectedValue      = currentIssue.OwnerUserName;


            // SMOSS: XSS Bugfix
            Description.Text = (currentIssue.Description);

            // WARNING: Do Not html decode the text for the editor.
            // The editor is expecting HtmlEncoded text as input.
            DescriptionHtmlEditor.Text = currentIssue.Description;
            lblLastUpdateUser.Text     = currentIssue.LastUpdateDisplayName;
            lblReporter.Text           = currentIssue.CreatorDisplayName;

            // XSS Bugfix
            // The text box is expecting raw html
            TitleTextBox.Text                   = Server.HtmlDecode(currentIssue.Title);
            DisplayTitleLabel.Text              = currentIssue.Title;
            lblDateCreated.Text                 = currentIssue.DateCreated.ToString("g");
            lblLastModified.Text                = currentIssue.LastUpdate.ToString("g");
            lblIssueNumber.Text                 = currentIssue.FullId;
            DropCategory.SelectedValue          = currentIssue.CategoryId;
            DropMilestone.SelectedValue         = currentIssue.MilestoneId;
            DropAffectedMilestone.SelectedValue = currentIssue.AffectedMilestoneId;
            DropAssignedTo.SelectedValue        = currentIssue.AssignedUserName;
            lblLoggedTime.Text                  = currentIssue.TimeLogged.ToString();
            txtEstimation.Text                  = currentIssue.Estimation == 0 ? string.Empty : currentIssue.Estimation.ToString();
            DueDatePicker.SelectedValue         = currentIssue.DueDate == DateTime.MinValue ? null : (DateTime?)currentIssue.DueDate;
            chkPrivate.Checked                  = currentIssue.Visibility != 0;
            ProgressSlider.Text                 = currentIssue.Progress.ToString();
            IssueVoteCount.Text                 = currentIssue.Votes.ToString();

            if (User.Identity.IsAuthenticated && IssueVoteManager.HasUserVoted(currentIssue.Id, Security.GetUserName()))
            {
                VoteButton.Visible = false;
                VotedLabel.Visible = true;
                VotedLabel.Text    = GetLocalResourceObject("Voted").ToString();
            }
            else
            {
                VoteButton.Visible = true;
                VotedLabel.Visible = false;
            }

            if (currentIssue.StatusId != 0 && StatusManager.GetById(currentIssue.StatusId).IsClosedState)
            {
                VoteButton.Visible = false;
                VotedLabel.Visible = false;
            }

            List <DefaultValue> defValues     = IssueManager.GetDefaultIssueTypeByProjectId(ProjectId);
            DefaultValue        selectedValue = defValues.FirstOrDefault();

            if (selectedValue != null)
            {
                // Visibility Section
                IssueTypeField.Visible         = selectedValue.TypeEditVisibility;
                StatusField.Visible            = selectedValue.StatusEditVisibility;
                PriorityField.Visible          = selectedValue.PriorityEditVisibility;
                PrivateField.Visible           = selectedValue.PrivateEditVisibility;
                CategoryField.Visible          = selectedValue.CategoryEditVisibility;
                DueDateField.Visible           = selectedValue.DueDateEditVisibility;
                ProgressField.Visible          = selectedValue.PercentCompleteEditVisibility;
                MilestoneField.Visible         = selectedValue.MilestoneEditVisibility;
                EstimationField.Visible        = selectedValue.EstimationEditVisibility;
                ResolutionField.Visible        = selectedValue.ResolutionEditVisibility;
                AffectedMilestoneField.Visible = selectedValue.AffectedMilestoneEditVisibility;
                AssignedToField.Visible        = selectedValue.AssignedToEditVisibility;
                OwnedByField.Visible           = selectedValue.OwnedByEditVisibility;
            }
        }
예제 #4
0
        /// <summary>
        /// Reads the default values for project.
        /// </summary>
        private void ReadDefaultValuesForProject()
        {
            List <DefaultValue> defValues     = IssueManager.GetDefaultIssueTypeByProjectId(ProjectId);
            DefaultValue        selectedValue = null;

            if (defValues.Count > 0)
            {
                selectedValue = defValues.ElementAt <DefaultValue>(0);
            }

            if (selectedValue != null)
            {
                DropIssueType.SelectedValue         = selectedValue.IssueTypeId;
                DropPriority.SelectedValue          = selectedValue.PriorityId;
                DropResolution.SelectedValue        = selectedValue.ResolutionId;
                DropCategory.SelectedValue          = selectedValue.CategoryId;
                DropMilestone.SelectedValue         = selectedValue.MilestoneId;
                DropAffectedMilestone.SelectedValue = selectedValue.AffectedMilestoneId;

                if (selectedValue.AssignedUserName != "none" && DropAssignedTo.DataSource.Exists(i => i.UserName == selectedValue.AssignedUserName))
                {
                    DropAssignedTo.SelectedValue = selectedValue.AssignedUserName;
                }

                if (selectedValue.OwnerUserName != "none" && DropOwned.DataSource.Exists(i => i.UserName == selectedValue.OwnerUserName))
                {
                    DropOwned.SelectedValue = selectedValue.OwnerUserName;
                }

                DropStatus.SelectedValue = selectedValue.StatusId;

                if (selectedValue.IssueVisibility == 0)
                {
                    chkPrivate.Checked = false;
                }
                if (selectedValue.IssueVisibility == 1)
                {
                    chkPrivate.Checked = true;
                }

                if (selectedValue.DueDate.HasValue)
                {
                    DueDate.Text = selectedValue.DueDate.Value.ToString();
                }

                ProgressSlider.Text = selectedValue.Progress.ToString();
                txtEstimation.Text  = selectedValue.Estimation.ToString();

                //Visibility Section

                chkStatusVisibility.Checked            = selectedValue.StatusVisibility;
                chkOwnedByVisibility.Checked           = selectedValue.OwnedByVisibility;
                chkPriorityVisibility.Checked          = selectedValue.PriorityVisibility;
                chkAssignedToVisibility.Checked        = selectedValue.AssignedToVisibility;
                chkPrivateVisibility.Checked           = selectedValue.PrivateVisibility;
                chkCategoryVisibility.Checked          = selectedValue.CategoryVisibility;
                chkDueDateVisibility.Checked           = selectedValue.DueDateVisibility;
                chkTypeVisibility.Checked              = selectedValue.TypeVisibility;
                chkPercentCompleteVisibility.Checked   = selectedValue.PercentCompleteVisibility;
                chkMilestoneVisibility.Checked         = selectedValue.MilestoneVisibility;
                chkEstimationVisibility.Checked        = selectedValue.EstimationVisibility;
                chkResolutionVisibility.Checked        = selectedValue.ResolutionVisibility;
                chkAffectedMilestoneVisibility.Checked = selectedValue.AffectedMilestoneVisibility;
                chkNotifyAssignedTo.Checked            = selectedValue.AssignedToNotify;
                chkNotifyOwner.Checked = selectedValue.OwnedByNotify;

                chkStatusEditVisibility.Checked            = selectedValue.StatusEditVisibility;
                chkOwnedByEditVisibility.Checked           = selectedValue.OwnedByEditVisibility;
                chkPriorityEditVisibility.Checked          = selectedValue.PriorityEditVisibility;
                chkAssignedToEditVisibility.Checked        = selectedValue.AssignedToEditVisibility;
                chkPrivateEditVisibility.Checked           = selectedValue.PrivateEditVisibility;
                chkCategoryEditVisibility.Checked          = selectedValue.CategoryEditVisibility;
                chkDueDateEditVisibility.Checked           = selectedValue.DueDateEditVisibility;
                chkTypeEditVisibility.Checked              = selectedValue.TypeEditVisibility;
                chkPercentCompleteEditVisibility.Checked   = selectedValue.PercentCompleteEditVisibility;
                chkMilestoneEditVisibility.Checked         = selectedValue.MilestoneEditVisibility;
                chkEstimationEditVisibility.Checked        = selectedValue.EstimationEditVisibility;
                chkResolutionEditVisibility.Checked        = selectedValue.ResolutionEditVisibility;
                chkAffectedMilestoneEditVisibility.Checked = selectedValue.AffectedMilestoneEditVisibility;
            }
        }