예제 #1
0
        private void DeserializeSelectedEquipments(string value)
        {
            string error = null;

            try
            {
                List<Item> items = JsonConvert.DeserializeObject<List<Item>>(value);
                var eqpErrors = new List<string>();

                foreach (ArmorPieceTypesViewModel type in armorPieceTypes)
                {
                    Item item = items.FirstOrDefault(x => x.Type == (int)type.Type);

                    if (item.Selected == null)
                    {
                        error = "Invalid advanced search data";
                        break;
                    }

                    foreach (ISolverDataEquipmentModel eqp in type.Equipments)
                        eqp.IsSelected = false;

                    foreach (string eqpName in item.Selected)
                    {
                        ISolverDataEquipmentModel eqp = type.Equipments.FirstOrDefault(x => Core.Localization.GetDefault(x.Equipment.Name) == eqpName);

                        if (eqp == null)
                            eqpErrors.Add(eqpName);
                        else
                            eqp.IsSelected = true;
                    }

                    type.ForceRefreshEquipments();
                }

                if (eqpErrors.Count > 0)
                {
                    string errMessage = string.Join("\n- ", eqpErrors);
                    error = $"The following equipment(s) could not be selected because unavailable:\n- {errMessage}";
                }
            }
            catch (Exception ex)
            {
                if (error == null)
                    error = ex.Message;
            }

            if (error != null)
            {
                IMessageBoxService service = ServicesContainer.GetService<IMessageBoxService>();
                service.Show(new MessageBoxServiceOptions
                {
                    Buttons = Core.ServiceContracts.MessageBoxButton.OK,
                    Icon = Core.ServiceContracts.MessageBoxImage.Warning,
                    MessageBoxText = error,
                    Title = "Error",
                });
            }
        }
 public AdvancedSearchEquipment(ISolverDataEquipmentModel model, Action onSelectionChanged)
 {
     this.model = model;
     this.onSelectionChanged = onSelectionChanged;
     originalSelection       = model.IsSelected;
 }