LogikalProjectImport.xaml.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using System.Windows;
  8. using Comal.Classes;
  9. using InABox.Clients;
  10. using InABox.Core;
  11. using InABox.DynamicGrid;
  12. using InABox.Logikal;
  13. using InABox.Wpf;
  14. using InABox.WPF;
  15. using Microsoft.Win32;
  16. using sun.rmi.server;
  17. namespace PRSDesktop;
  18. public partial class LogikalProjectImport : Window
  19. {
  20. private void UpdateStatus(LogikalResponse response)
  21. {
  22. Status.Content = response.ToString();
  23. }
  24. private LogikalClient ClientRequired(object sender)
  25. {
  26. return client;
  27. }
  28. private LogikalClient client = new LogikalClient();
  29. public LogikalProjectImport()
  30. {
  31. InitializeComponent();
  32. ProjectCentres.Refresh(true, false);
  33. Projects.Refresh(true, false);
  34. }
  35. private void OK_Click(object sender, RoutedEventArgs e)
  36. {
  37. var project = Projects.SelectedRows.FirstOrDefault()?.ToObject<LogikalProject>();
  38. if (project == null)
  39. return;
  40. Job job = new Job();
  41. job.Name = project.Name?? "Unknown Project";
  42. job.SourceRef = project.ID.ToString();
  43. Client.Save<Job>(job, "Created from Logikal Logikal Project");
  44. DialogResult = true;
  45. }
  46. private void Cancel_Click(object sender, RoutedEventArgs e)
  47. {
  48. DialogResult = false;
  49. }
  50. private void Window_Loaded(object sender, RoutedEventArgs e)
  51. {
  52. ProjectCentres.Get();
  53. }
  54. private void ProjectCentres_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
  55. {
  56. var id = e.Rows?.FirstOrDefault()?.Get<LogikalProjectCentre, Guid>(x => x.ID) ?? Guid.Empty;
  57. var _centre = ProjectCentres.Items.FirstOrDefault(x => x.ID == id);
  58. Projects.Items = _centre?.Projects.ToList() ?? new List<LogikalProject>();
  59. Projects.Refresh(false, true);
  60. Status.Content = $"{Projects.Items.Count} Projects Found";
  61. }
  62. private void Projects_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
  63. {
  64. var id = e.Rows?.FirstOrDefault()?.Get<LogikalProject, Guid>(x => x.ID) ?? Guid.Empty;
  65. OK.IsEnabled = id != Guid.Empty;
  66. }
  67. }