Esempio n. 1
0
        private void ShowAttachments()
        {
            FormUtil.Reselect <Attachment>(attachmentsListView, () => {
                Attachment[] attachments = mTicket.GetAttachmentsWithoutContents(mContext);

                attachmentsListView.BeginUpdate();
                attachmentsListView.Items.Clear();
                foreach (var attachment in attachments)
                {
                    var lvi = new ListViewItem()
                    {
                        Text = attachment.Name,
                        Tag  = attachment,
                    };

                    lvi.SubItems.Add($"{attachment.Size}");

                    attachmentsListView.Items.Add(lvi);
                }

                attachmentsListView.EndUpdate();
                attachmentsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });

            UpdateButtonsEnabledProperty();
        }
Esempio n. 2
0
        private void ShowMilestones()
        {
            FormUtil.Reselect <Milestone>(milestonesListView, () => {
                Milestone[] milestones = Project.GetMilestones(mContext);

                milestonesListView.BeginUpdate();
                milestonesListView.Items.Clear();
                foreach (var milestone in milestones)
                {
                    string milestoneState;
                    switch (milestone.State)
                    {
                    case MilestoneState.Active:
                        milestoneState = Resources.String_Active;
                        break;

                    case MilestoneState.Completed:
                        milestoneState = Resources.String_Completed;
                        break;

                    case MilestoneState.Cancelled:
                        milestoneState = Resources.String_Cancelled;
                        break;

                    default:
                        milestoneState = string.Empty;
                        break;
                    }

                    Ticket[] tickets = Ticket.GetTickets(mContext, milestone.ID);
                    var lvi          = new ListViewItem()
                    {
                        Text = milestone.Name,
                        Tag  = milestone,
                    };

                    lvi.SubItems.Add(milestoneState);
                    lvi.SubItems.Add(tickets.Count(t => t.State.IsOpen()).ToString());
                    lvi.SubItems.Add(tickets.Length.ToString());
                    milestonesListView.Items.Add(lvi);
                }
                milestonesListView.EndUpdate();
                milestonesListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });

            UpdateButtonsEnabledProperty();
            ShowTickets();
        }
Esempio n. 3
0
        private void ShowTickets()
        {
            if (mResettingTicketFilters)
            {
                return;
            }

            FormUtil.Reselect <Ticket>(ticketsListView, () => {
                string summaryFilter   = ticketSummaryTextBox.Text;
                var reporterFilter     = (string)ticketReportersComboBox.SelectedItem;
                var assignedFilter     = (string)ticketAssignedToComboBox.SelectedItem;
                string milestoneFilter = (string)ticketMilestoneComboBox.SelectedItem;
                var stateFilter        = FormUtil.CastBoxToEnum <MetaTicketState>(ticketStateComboBox);
                var severityFilter     = FormUtil.CastBoxToEnum <TicketSeverity>(ticketSeverityComboBox);
                var priorityFilter     = FormUtil.CastBoxToEnum <TicketPriority>(ticketPriorityComboBox);
                var typeFilter         = FormUtil.CastBoxToEnum <TicketType>(ticketTypeComboBox);

                Ticket[] tickets = Project.GetTickets(mContext);

                tickets = tickets.Where(t => {
                    bool satisfiesSummaryFilter   = FormUtil.SatisfiesFilterContains(t.Summary, summaryFilter);
                    bool satisfiesReporterFilter  = FormUtil.SatisfiesFilterMatch(t.ReportedBy, reporterFilter);
                    bool satisfiesAssignedFilter  = FormUtil.SatisfiesFilterMatch(t.AssignedTo, assignedFilter);
                    bool satisfiesMilestoneFilter = FormUtil.SatisfiesFilterMatch(t.GetMilestone(mContext).Name, milestoneFilter);
                    bool satisfiesStateFilter     = stateFilter == null || stateFilter.Value.AppliesTo(t.State);
                    bool satisfiesSeverityFilter  = FormUtil.SatisfiesFilterEnum(t.Severity, severityFilter);
                    bool satisfiesPriorityFilter  = FormUtil.SatisfiesFilterEnum(t.Priority, priorityFilter);
                    bool satisfiesTypeFilter      = FormUtil.SatisfiesFilterEnum(t.Type, typeFilter);
                    bool satisfiesCreatedFilter   = FormUtil.SatisfiesFilterContains(t.CreateTimestamp, mTicketCreateFilter);
                    bool satisfiesModifiedFilter  = FormUtil.SatisfiesFilterContains(t.ModifyTimestamp, mTicketModifyFilter);

                    return
                    (satisfiesSummaryFilter &&
                     satisfiesReporterFilter &&
                     satisfiesAssignedFilter &&
                     satisfiesMilestoneFilter &&
                     satisfiesStateFilter &&
                     satisfiesSeverityFilter &&
                     satisfiesPriorityFilter &&
                     satisfiesTypeFilter &&
                     satisfiesCreatedFilter &&
                     satisfiesModifiedFilter);
                }).ToArray();

                // Cache milestones.
                var milestoneNames     = new Dictionary <int, string>();
                Milestone[] milestones = Milestone.GetMilestones(mContext);
                foreach (Milestone milestone in milestones)
                {
                    milestoneNames[milestone.ID] = milestone.Name;
                }

                ticketsListView.BeginUpdate();
                ticketsListView.Items.Clear();
                foreach (var ticket in tickets)
                {
                    string ticketPriority = TicketChangeFormatter.Default.TranslateTicketPriority(ticket.Priority);
                    string ticketType     = TicketChangeFormatter.Default.TranslateTicketType(ticket.Type);
                    string ticketSeverity = TicketChangeFormatter.Default.TranslateTicketSeverity(ticket.Severity);
                    string ticketState    = TicketChangeFormatter.Default.TranslateTicketState(ticket.State);

                    var lvi = new ListViewItem();

                    lvi.Text = $"{ticket.TicketNumber}";
                    lvi.SubItems.Add(ticket.Summary);
                    lvi.SubItems.Add(milestoneNames[ticket.MilestoneID]);
                    lvi.SubItems.Add(ticketPriority);
                    lvi.SubItems.Add(ticketType);
                    lvi.SubItems.Add(ticketSeverity);
                    lvi.SubItems.Add(ticketState);
                    lvi.Tag = ticket;

                    ticketsListView.Items.Add(lvi);
                }

                ticketsListView.EndUpdate();
                ticketsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });

            UpdateButtonsEnabledProperty();
        }