示例#1
0
 public void Update(Ticket selectedTicket)
 {
     _selectedTicket = selectedTicket;
     TicketTagValueViewModels.Clear();
     TicketTagValueViewModels.AddRange(_applicationState.GetTicketTagGroups().Where(x => x.AskBeforeCreatingTicket).Select(x => new TicketTagValueViewModel(x, selectedTicket)));
     RaisePropertyChanged(() => RowCount);
 }
示例#2
0
        public void Update(Ticket selectedTicket)
        {
            _selectedTicket = selectedTicket;
            var tags = _applicationState.GetTicketTagGroups().Where(x => x.AskBeforeCreatingTicket).ToList();

            TicketTagValueViewModels.Clear();
            TicketTagValueViewModels.AddRange(tags.Select(x => new TicketTagValueViewModel(x, selectedTicket)));
            RaisePropertyChanged(nameof(RowCount));
            OnSelectTicketTagGroup(TicketTagValueViewModels.First().Model);
        }
        public bool TicketTagSelected(Ticket currentTicket, TicketTagGroup tagGroup)
        {
            SelectedTicket = currentTicket;

            IsFreeTagEditorVisible = tagGroup.FreeTagging;
            SelectedTicketTagData  = tagGroup;
            List <TicketTag> ticketTags;

            if (IsFreeTagEditorVisible)
            {
                ticketTags = _cacheService.GetTicketTagGroupById(tagGroup.Id)
                             .TicketTags.OrderBy(x => x.Name).ToList();
            }
            else
            {
                ticketTags = _applicationState.GetTicketTagGroups().Where(
                    x => x.Name == tagGroup.Name).SelectMany(x => x.TicketTags).ToList();
            }

            if (tagGroup.FreeTagging)
            {
                ticketTags.Sort(AlphanumericComparator);
            }
            else
            {
                ticketTags.Sort((x, y) => x.SortOrder.CompareTo(y.SortOrder));
            }

            TicketTags.AddRange(ticketTags);

            if (SelectedTicket.IsTaggedWith(tagGroup.Name))
            {
                if (TicketTags.Count == 1)
                {
                    UpdateTicketTag(SelectedTicket, SelectedTicketTagData, TicketTag.Empty);
                    return(true);
                }
                if (!tagGroup.ForceValue)
                {
                    TicketTags.Add(TicketTag.Empty);
                }
            }

            if (TicketTags.Count == 1 && !IsFreeTagEditorVisible)
            {
                UpdateTicketTag(SelectedTicket, SelectedTicketTagData, TicketTags[0]);
                return(true);
            }

            RaisePropertyChanged(nameof(TagColumnCount));
            RaisePropertyChanged(nameof(IsFreeTagEditorVisible));
            RaisePropertyChanged(nameof(FilteredTextBoxType));
            return(false);
        }
示例#4
0
 private bool ShouldDisplayTicketTagList(Ticket ticket)
 {
     return(ticket != null &&
            ticket.Orders.Count == 0 &&
            _applicationState.GetTicketTagGroups().Any(x => x.AskBeforeCreatingTicket && !ticket.IsTaggedWith(x.Name)));
 }