public static TieringChange FromTieringCommand(TieringCommand item)
        {
            TieringChange result = new TieringChange();

            result.BaseType   = item.BaseType;
            result.OldTier    = item.OldTier;
            result.NewTier    = item.NewTier;
            result.Reason     = item.AppliedRule;
            result.Confidence = item.Confidence;
            result.Category   = item.Group;

            result.Change = TranslateChange(item);

            if (!item.Group.ToLower().Contains("rare"))
            {
                var items = ItemInformationFacade.GetInstance()[item.Group, item.BaseType];
                if (items != null)
                {
                    result.InnerInformation =
                        items.GroupBy(x => x.Name)
                        .Select(x => x.First())
                        .Select(x => new TieringChangeInnerItemInformaiton()
                    {
                        Name = x.Name, Icon = "", Aspects = null
                    })
                        .ToList();
                }
            }

            return(result);
        }
Beispiel #2
0
        public void ApplyCommand(TieringCommand command)
        {
            if (command.LocalIgnore)
            {
                return;
            }

            if (command.Performed)
            {
                return;
            }

            if (command.OldTier.ToLower() == command.NewTier.ToLower())
            {
                return;
            }

            if (command.NewTier == "???")
            {
                return;
            }

            var oldTiers = command.OldTier.Split(',');

            var accessCommand = this.TierListData[command.Group].KeyIdent;

            foreach (var oldTier in oldTiers)
            {
                if (!FilterGenerationConfig.IgnoredSuggestionTiers.Contains(oldTier.ToLower()))
                {
                    var removalTarget = this.TierListData[command.Group]
                                        .FilterEntries[oldTier].Entry
                                        .Select(x => x.GetValues <EnumValueContainer>(accessCommand))
                                        .SelectMany(x => x).ToList();

                    removalTarget.ForEach(x => x.Value.RemoveWhere(z => z.value.Equals(command.BaseType, StringComparison.InvariantCultureIgnoreCase)));
                    command.Performed = true;
                }
            }

            var newTiers = command.NewTier.Split(',');

            foreach (var newTier in newTiers)
            {
                if (!FilterGenerationConfig.IgnoredSuggestionTiers.Contains(newTier.ToLower()))
                {
                    var additionTarget = this.TierListData[command.Group]
                                         .FilterEntries[newTier].Entry
                                         .Select(x => x.GetValues <EnumValueContainer>(accessCommand))
                                         .SelectMany(x => x).ToList();

                    additionTarget.ForEach(x => x.Value.Add(new LineToken()
                    {
                        value = command.BaseType, isQuoted = true
                    }));
                    command.Performed = true;
                }
            }
        }
        public bool Applies(TieringCommand x)
        {
            if (!this.Active)
            {
                return(true);
            }

            return(Rule(x));
        }
        private static int TranslateChange(TieringCommand item)
        {
            if (item.OldTier == item.NewTier)
            {
                return(0);
            }

            return(1);
        }
        private bool IsSuggestionVisible(TieringCommand x)
        {
            foreach (var item in this.TieringFilters)
            {
                if (!item.Value.Applies(x))
                {
                    return(false);
                }
            }

            return(true);
        }
#pragma warning restore CS0067

        private void TieringSuggestionsGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {
            if (TieringSuggestionsGrid.SelectedItem == null)
            {
                return;
            }

            TieringCommand command = TieringSuggestionsGrid.SelectedItem as TieringCommand;

            InnerView.BranchKey = command.Group;
            InnerView.Key       = command.BaseType;
            InnerView.SelectFirstItem();
        }
Beispiel #7
0
 private string GenerateExplanation(TieringCommand item)
 {
     return($"{item.OldTier} -> {item.NewTier}");
 }