private void ApplySaveDataEquipments(EquipmentSaveSlotInfo saveSlotEquipments)
        {
            foreach (EquipmentGroupViewModel group in AllEquipments)
            {
                foreach (EquipmentViewModel equipment in group.Equipments)
                {
                    equipment.IsPossessed = false;

                    GameEquipment foundGameEquipmentFromMasterData = gameEquipments.FirstOrDefault(x => x.Name == Localization.Get(equipment.Name));

                    if (foundGameEquipmentFromMasterData == null)
                    {
                        Console.WriteLine($"Missing equipment from master data: {equipment.Name}");
                    }
                    else
                    {
                        Equipment n = saveSlotEquipments.Equipment
                                      .FirstOrDefault(x => IsMatch(x, foundGameEquipmentFromMasterData));

                        if (n != null)
                        {
                            equipment.IsPossessed = true;
                        }
                    }
                }
            }

            ComputeVisibility();
        }
        private async Task ImportInternal()
        {
            if (gameEquipments == null)
            {
                gameEquipments = LoadGameEquipments();
                if (gameEquipments == null)
                {
                    return;
                }
            }

            EquipmentSaveSlotInfo selected = await SaveDataUtils.GetEquipmentSaveSlot(saveSlotInfoSelector);

            if (selected == null)
            {
                return;
            }

            ApplySaveDataEquipments(selected);
        }