AWGMappingWindow.xaml.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. //Guid jobid,
  19. IEnumerable<IAwgFinish> finishes,
  20. IEnumerable<IAwgProfile> profiles,
  21. IEnumerable<IAwgGasket> gaskets,
  22. IEnumerable<IAwgComponent> components,
  23. IEnumerable<IAwgGlass> glass,
  24. IEnumerable<IAwgLabour> labour,
  25. Action<ProductLink,ProductStyleLink?,IBaseDimensions,double,double>? partsCallback,
  26. Action<ActivityLink,TimeSpan, double>? labourCallback)
  27. {
  28. InitializeComponent();
  29. _partsCallback = partsCallback;
  30. _labourCallback = labourCallback;
  31. //ViewModel.JobID = jobid;
  32. ViewModel.Finishes = finishes;
  33. ViewModel.Profiles = profiles;
  34. ViewModel.Gaskets = gaskets;
  35. ViewModel.Components = components;
  36. ViewModel.Glass = glass;
  37. ViewModel.Labour = labour;
  38. }
  39. private void CancelClick(object sender, RoutedEventArgs e)
  40. {
  41. DialogResult = false;
  42. }
  43. private void OKClick(object sender, RoutedEventArgs e)
  44. {
  45. ViewModel.GetParts(_partsCallback,_labourCallback);
  46. //ViewModel.CreateBOM();
  47. DialogResult = true;
  48. }
  49. public void GetParts<TProfile, TGasket, TComponent, TGlass, TLabour>(
  50. IEnumerable<TProfile>? profiles,
  51. IEnumerable<TGasket>? gaskets,
  52. IEnumerable<TComponent>? components,
  53. IEnumerable<TGlass>? glasses,
  54. IEnumerable<TLabour>? labour,
  55. Action<ProductLink, ProductStyleLink?, IBaseDimensions, double, double>? productCallback,
  56. Action<ActivityLink, TimeSpan, double>? labourCallback)
  57. where TProfile : IAwgProfile
  58. where TGasket : IAwgGasket
  59. where TComponent : IAwgComponent
  60. where TGlass : IAwgGlass
  61. where TLabour : IAwgLabour
  62. {
  63. ViewModel.GetParts(profiles, gaskets, components, glasses, labour, productCallback, labourCallback);
  64. }
  65. }