/// <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); }
/// <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; } }
/// <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; } }
/// <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; } }