private async Task LoadMagicItems(E5Client e5Client)
        {
            var magicItemsList = await e5Client.GetMagicItemsAsync();

            allItems.AddRange(magicItemsList.Results);
            Items.AddRange(GetFilteredEquipments(EquipmentsFilterEntry.Text));
        }
        protected override async void OnAppearing()
        {
            allItems.Clear();
            Items.Clear();
            if (Connectivity.NetworkAccess == NetworkAccess.None)
            {
                await DisplayAlert("No internet", "The app could not connect to the internet.", "OK");

                return;
            }

            var e5Client = new E5Client();

            try
            {
                await Task.WhenAll(LoadEquipment(e5Client), LoadMagicItems(e5Client));
            }
            catch (Exception ex)
            {
                Log.Error(ex, "An error occurred while loading equipments and magic items");
                await DisplayAlert("Unexptected Error", "An error occurred while loading equipments and magic items.", "OK");
            }
        }
Пример #3
0
 public void Initialize()
 {
     e5Client = new E5Client();
 }
Пример #4
0
        protected override async void OnAppearing()
        {
            if (Connectivity.NetworkAccess == NetworkAccess.None)
            {
                await DisplayAlert("No internet", "The app could not connect to the internet.", "OK");

                return;
            }

            EquipmentDetails equipmentDetails = null;

            try
            {
                var e5Client = new E5Client();
                if (e5Resource.Url.StartsWith("/api/equipment"))
                {
                    equipmentDetails = await e5Client.GetEquipmentDetailsAsync(e5Resource.Index);
                }
                else if (e5Resource.Url.StartsWith("/api/magic-items"))
                {
                    equipmentDetails = await e5Client.GetMagicItemDetailsAsync(e5Resource.Index);
                }
                else
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "An error occurred while loading details");
                await DisplayAlert("Unexptected Error", "An error occurred while loading details.", "OK");

                return;
            }

            if (equipmentDetails.DescriptionLines != null && equipmentDetails.DescriptionLines.Length != 0)
            {
                viewModel.Description = string.Join($"{Environment.NewLine}{Environment.NewLine}", equipmentDetails.DescriptionLines);
            }

            if (equipmentDetails.Cost != null)
            {
                viewModel.Cost = $"{equipmentDetails.Cost.Quantity}{equipmentDetails.Cost.Unit}";
            }

            viewModel.DamageDice = equipmentDetails.Damage?.DamageDice;
            viewModel.DamageType = equipmentDetails.Damage?.DamageType.Name;

            if (viewModel.Range != null)
            {
                viewModel.Range = $"{equipmentDetails.Range.Normal}";
                if (equipmentDetails.Range.Long != null)
                {
                    viewModel.Range += $"/{equipmentDetails.Range.Long}";
                }
                viewModel.Range += "ft";
            }

            viewModel.Weight = equipmentDetails.Weight?.ToString();

            if (equipmentDetails.Properties != null && equipmentDetails.Properties.Length > 0)
            {
                viewModel.Properties = string.Join(", ", equipmentDetails.Properties.Select(p => p.Name));
            }

            if (equipmentDetails.ArmorClass != null)
            {
                viewModel.ArmorClass = equipmentDetails.ArmorClass.Base.ToString();
            }

            viewModel.StealthDisadvantaged = equipmentDetails.StealthDisadvantage == true;
        }