AWGMappingWindow.xaml.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Linq.Expressions;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using Comal.Classes;
  8. using InABox.Core;
  9. using InABox.Integration.Awg;
  10. using InABox.Integration.Logikal;
  11. using PRSDesktop.Integrations.Logikal;
  12. namespace PRSDesktop.Integrations.Common;
  13. public partial class AWGMappingWindow : Window
  14. {
  15. private readonly Action<ProductLink,ProductStyleLink?,IBaseDimensions,double,double>? _partsCallback;
  16. private readonly Action<ActivityLink,TimeSpan, double>? _labourCallback;
  17. public AWGMappingWindow(
  18. IntegrationSourceType sourceType,
  19. //Guid jobid,
  20. IEnumerable<IAwgFinish> finishes,
  21. IEnumerable<IAwgProfile> profiles,
  22. IEnumerable<IAwgGasket> gaskets,
  23. IEnumerable<IAwgComponent> components,
  24. IEnumerable<IAwgGlass> glass,
  25. IEnumerable<IAwgLabour> labour,
  26. Action<ProductLink,ProductStyleLink?,IBaseDimensions,double,double>? partsCallback,
  27. Action<ActivityLink,TimeSpan, double>? labourCallback)
  28. {
  29. InitializeComponent();
  30. _partsCallback = partsCallback;
  31. _labourCallback = labourCallback;
  32. //ViewModel.JobID = jobid;
  33. ViewModel.SourceType = sourceType;
  34. ViewModel.Finishes = finishes;
  35. ViewModel.Profiles = profiles;
  36. ViewModel.Gaskets = gaskets;
  37. ViewModel.Components = components;
  38. ViewModel.Glass = glass;
  39. ViewModel.Labour = labour;
  40. }
  41. private void CancelClick(object sender, RoutedEventArgs e)
  42. {
  43. DialogResult = false;
  44. }
  45. private void OKClick(object sender, RoutedEventArgs e)
  46. {
  47. ViewModel.GetParts(_partsCallback,_labourCallback);
  48. //ViewModel.CreateBOM();
  49. DialogResult = true;
  50. }
  51. public void GetParts<TProfile, TGasket, TComponent, TGlass, TLabour>(
  52. IEnumerable<TProfile>? profiles,
  53. IEnumerable<TGasket>? gaskets,
  54. IEnumerable<TComponent>? components,
  55. IEnumerable<TGlass>? glasses,
  56. IEnumerable<TLabour>? labour,
  57. Action<ProductLink, ProductStyleLink?, IBaseDimensions, double, double>? productCallback,
  58. Action<ActivityLink, TimeSpan, double>? labourCallback)
  59. where TProfile : IAwgProfile
  60. where TGasket : IAwgGasket
  61. where TComponent : IAwgComponent
  62. where TGlass : IAwgGlass
  63. where TLabour : IAwgLabour
  64. {
  65. ViewModel.GetParts(profiles, gaskets, components, glasses, labour, productCallback, labourCallback);
  66. }
  67. }