EmployeeQualificationStore.cs 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. namespace Comal.Stores
  6. {
  7. public class EmployeeQualificationStore : BaseStore<EmployeeQualification>
  8. {
  9. protected override void AfterSave(EmployeeQualification entity)
  10. {
  11. base.AfterSave(entity);
  12. var jobs = Provider.Query(new Filter<JobEmployee>(x => x.EmployeeLink.ID).IsEqualTo(entity.Employee.ID)).Rows
  13. .Select(row => row.Get<JobEmployee, Guid>(col => col.JobLink.ID));
  14. foreach (var job in jobs)
  15. {
  16. var jobqualifications = Provider
  17. .Query(new Filter<JobQualification>(x => x.Job.ID).IsEqualTo(job).And(x => x.Qualification.ID).IsEqualTo(entity.Qualification.ID))
  18. .Rows.Select(row => row.Get<JobQualification, Guid>(col => col.ID));
  19. foreach (var jobqualification in jobqualifications)
  20. {
  21. var maps = Provider.Query(new Filter<JobEmployeeQualification>(x => x.Required.ID).IsEqualTo(jobqualification)
  22. .And(x => x.Available.ID).IsEqualTo(entity.ID));
  23. if (!maps.Rows.Any())
  24. {
  25. var map = new JobEmployeeQualification();
  26. map.Required.ID = jobqualification;
  27. map.Available.ID = entity.ID;
  28. Provider.Save(map);
  29. }
  30. }
  31. }
  32. }
  33. }
  34. public class JobQualificationStore : BaseStore<JobQualification>
  35. {
  36. protected override void AfterSave(JobQualification entity)
  37. {
  38. base.AfterSave(entity);
  39. var employees = Provider.Query(new Filter<JobEmployee>(x => x.JobLink.ID).IsEqualTo(entity.Job.ID)).Rows
  40. .Select(row => row.Get<JobEmployee, Guid>(col => col.EmployeeLink.ID));
  41. foreach (var employee in employees)
  42. {
  43. var employeequalifications = Provider
  44. .Query(new Filter<EmployeeQualification>(x => x.Employee.ID).IsEqualTo(employee).And(x => x.Qualification.ID)
  45. .IsEqualTo(entity.Qualification.ID)).Rows.Select(row => row.Get<JobQualification, Guid>(col => col.ID));
  46. foreach (var employeequalification in employeequalifications)
  47. {
  48. var maps = Provider.Query(new Filter<JobEmployeeQualification>(x => x.Available.ID).IsEqualTo(employeequalification)
  49. .And(x => x.Required.ID).IsEqualTo(entity.ID));
  50. if (!maps.Rows.Any())
  51. {
  52. var map = new JobEmployeeQualification();
  53. map.Required.ID = entity.ID;
  54. map.Available.ID = employeequalification;
  55. Provider.Save(map);
  56. }
  57. }
  58. }
  59. }
  60. }
  61. public class JobEmployeeStore : BaseStore<JobEmployee>
  62. {
  63. protected override void AfterSave(JobEmployee entity)
  64. {
  65. base.AfterSave(entity);
  66. var employeeid = entity.EmployeeLink.ID;
  67. var jobqualifications = Provider.Query(new Filter<JobQualification>(x => x.Job.ID).IsEqualTo(entity.JobLink.ID));
  68. foreach (var row in jobqualifications.Rows)
  69. {
  70. var jobqualification = row.Get<JobQualification, Guid>(col => col.ID);
  71. var qualificationid = row.Get<JobQualification, Guid>(col => col.Qualification.ID);
  72. var employeequalifications = Provider
  73. .Query(new Filter<EmployeeQualification>(x => x.Qualification.ID).IsEqualTo(qualificationid).And(x => x.Employee.ID)
  74. .IsEqualTo(employeeid)).Rows.Select(r => r.Get<EmployeeQualification, Guid>(c => c.ID));
  75. foreach (var employeequalification in employeequalifications)
  76. {
  77. var maps = Provider.Query(new Filter<JobEmployeeQualification>(x => x.Available.ID).IsEqualTo(employeequalification)
  78. .And(x => x.Required.ID).IsEqualTo(jobqualification));
  79. if (!maps.Rows.Any())
  80. {
  81. var map = new JobEmployeeQualification();
  82. map.Required.ID = jobqualification;
  83. map.Available.ID = employeequalification;
  84. Provider.Save(map);
  85. }
  86. }
  87. }
  88. }
  89. }
  90. }