LogikalElevationGrid.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Diagnostics;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Windows;
  8. using System.Windows.Media.Imaging;
  9. using Comal.Classes;
  10. using InABox.Core;
  11. using InABox.DynamicGrid;
  12. using InABox.Logikal;
  13. using InABox.Wpf;
  14. using InABox.WPF;
  15. using jdk.nashorn.tools;
  16. using Microsoft.Win32;
  17. namespace PRSDesktop;
  18. public class LogikalElevationGrid : LogikalGrid<LogikalElevation>
  19. {
  20. public Guid ProjectID { get; set; }
  21. public string Phase { get; set; }
  22. protected override void Init()
  23. {
  24. base.Init();
  25. HiddenColumns.Add(x => x.ID);
  26. //ActionColumns.Add(new DynamicMenuColumn(BuildMenu) { Position = DynamicActionColumnPosition.Start });
  27. }
  28. protected override void DoReconfigure(DynamicGridOptions options)
  29. {
  30. base.DoReconfigure(options);
  31. options.MultiSelect = true;
  32. }
  33. //private void BuildMenu(DynamicMenuColumn column, CoreRow? row)
  34. //{
  35. // column.AddItem("Download Parts List", PRSDesktop.Resources.doc_xls, GetBOM);
  36. //}
  37. //private void GetBOM(CoreRow? r)
  38. //{
  39. // if (r != null && Client != null)
  40. // {
  41. // var id = r.Get<LogikalElevation, Guid>(x => x.ID);
  42. // Client.GetBillOfMaterials(ProjectID, id, true)
  43. // .Error(e =>
  44. // {
  45. // Dispatcher.BeginInvoke(() =>
  46. // {
  47. // MessageWindow.ShowError("Unable to retrieve parts", e.Message, e.Status.ToString());
  48. // });
  49. // })
  50. // .Success<LogikalBOMResponse<LogikalProfile,LogikalComponent,LogikalGlass,LogikalLabour>>(p =>
  51. // {
  52. // var sfd = new SaveFileDialog();
  53. // sfd.Filter = "Excel Files (*.xlsx)|*.xlsx";
  54. // sfd.FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ElevationPartsList.xlsx");
  55. // if (sfd.ShowDialog() == true)
  56. // {
  57. // File.WriteAllBytes(sfd.FileName, p.ExcelData);
  58. // var pInfo = new ProcessStartInfo(sfd.FileName) { UseShellExecute = true };
  59. // Process.Start(pInfo);
  60. // }
  61. // });
  62. // }
  63. //}
  64. protected override void DoGet(LogikalClient client, IProgress<string> progress)
  65. {
  66. Items = new List<LogikalElevation>();
  67. if (ProjectID != Guid.Empty)
  68. {
  69. client.GetElevations(ProjectID, Phase)
  70. .Always(NotifyResponseReceived)
  71. .Success<LogikalElevationsResponse<LogikalElevation>>(p =>
  72. {
  73. Items = p.Elevations.ToList();
  74. });
  75. }
  76. }
  77. }