MainWindow.axaml.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading.Tasks;
  4. using Avalonia;
  5. using Avalonia.Controls;
  6. using Avalonia.Interactivity;
  7. using Avalonia.Markup.Xaml;
  8. using Avalonia.UI.ViewModels;
  9. using Avalonia.ReactiveUI;
  10. using ReactiveUI;
  11. using Newtonsoft.Json;
  12. using Avalonia.UI.Models;
  13. using System.Net;
  14. using System.Net.Http;
  15. namespace Avalonia.UI.Views
  16. {
  17. public partial class MainWindow : Window //ReactiveWindow<MainWindowViewModel>
  18. {
  19. public MainWindow()
  20. {
  21. InitializeComponent();
  22. string link = "https://api.fbi.gov/wanted/v1/list";
  23. Api(link);
  24. //Окно не открывается
  25. // this.WhenActivated(d => d(ViewModel!.ShowDialog.RegisterHandler(DoShowDialogAsync)));
  26. }
  27. /*private async Task DoShowDialogAsync(InteractionContext<Crime, Statistic?> interaction)
  28. {
  29. var dialog = new Crime();
  30. dialog.DataContext = interaction.Input;
  31. var result = await dialog.ShowDialog<Statistic?>(this);
  32. interaction.SetOutput(result);
  33. }*/
  34. public void Api(string way)
  35. {
  36. DataInput.Items = null;
  37. InformationCriminal.Clear();
  38. using (var client = new HttpClient())
  39. {
  40. var newway = new Uri(way);
  41. var itog = client.GetAsync(newway).Result;
  42. var newformat = itog.Content.ReadAsStringAsync().Result;
  43. Deserealization? deserealization = JsonConvert.DeserializeObject<Deserealization>(newformat);
  44. var realization = deserealization.deserealize;
  45. foreach (var result in realization)
  46. {
  47. OrdinaryUrls.Add(new OrdinaryUrl(result.OrdinaryUrl.type, result.OrdinaryUrl.url,
  48. result.OrdinaryUrl.suggested_link_text));
  49. InformationCriminal.Add(new InformationCriminals(result.Newid, result.Title, result.Office,
  50. result.Detail,
  51. result.Pol, result.National, result.Age, result.Height, result.Race, result.Hair,
  52. result.Language, result.Urlpdf, result.OrdinaryUrl));
  53. }
  54. DataInput.Items = InformationCriminal;
  55. }
  56. }
  57. private void MostWanted(object? sender, RoutedEventArgs e)
  58. {
  59. string link = "https://api.fbi.gov/wanted/v1/list";
  60. Api(link);
  61. }
  62. public List<InformationCriminals> InformationCriminal = new List<InformationCriminals>(8);
  63. public List<OrdinaryUrl> OrdinaryUrls = new List<OrdinaryUrl>();
  64. }
  65. }