LogikalProjectImport.xaml.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 PRSDesktop.Utils.LogikalUtils;
  17. using sun.rmi.server;
  18. namespace PRSDesktop;
  19. public partial class LogikalProjectImport : Window
  20. {
  21. private void UpdateStatus(LogikalResponse response)
  22. {
  23. Status.Content = response.ToString();
  24. }
  25. private LogikalClient ClientRequired(object sender)
  26. {
  27. return client;
  28. }
  29. private LogikalClient client = new LogikalClient();
  30. public LogikalProjectImport()
  31. {
  32. InitializeComponent();
  33. ProjectCentres.Refresh(true, false);
  34. Projects.Refresh(true, false);
  35. }
  36. private void OK_Click(object sender, RoutedEventArgs e)
  37. {
  38. var project = Projects.SelectedRows.FirstOrDefault()?.ToObject<LogikalProject>();
  39. if (project == null)
  40. return;
  41. Job job = new Job();
  42. job.Name = project.Name?? "Unknown Project";
  43. job.SourceRef = project.ID.ToString();
  44. job.JobStatus.CopyFrom(LogikalCommon.JobStatus);
  45. Client.Save<Job>(job, "Created from Logikal Logikal Project");
  46. DialogResult = true;
  47. }
  48. private void Cancel_Click(object sender, RoutedEventArgs e)
  49. {
  50. DialogResult = false;
  51. }
  52. private void Window_Loaded(object sender, RoutedEventArgs e)
  53. {
  54. if (LogikalCommon.CheckSettings(client.Settings))
  55. ProjectCentres.Get();
  56. else
  57. Close();
  58. }
  59. private void ProjectCentres_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
  60. {
  61. var id = e.Rows?.FirstOrDefault()?.Get<LogikalProjectCentre, Guid>(x => x.ID) ?? Guid.Empty;
  62. var _centre = ProjectCentres.Items.FirstOrDefault(x => x.ID == id);
  63. Projects.Items = _centre?.Projects.ToList() ?? new List<LogikalProject>();
  64. Projects.Refresh(false, true);
  65. Status.Content = $"{Projects.Items.Count} Projects Found";
  66. }
  67. private void Projects_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
  68. {
  69. var id = e.Rows?.FirstOrDefault()?.Get<LogikalProject, Guid>(x => x.ID) ?? Guid.Empty;
  70. OK.IsEnabled = id != Guid.Empty;
  71. }
  72. }