Guest User

Untitled

a guest
May 24th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. //This is TransmitterService. There is also a MeasureCellService.
  2. //All the logic for adding calibration or temperature coefficients measurement, and setting the actualOnes is the "same".
  3. //I am triying to have a generic base class implementing this logic.
  4.  
  5. public class TransmitterService
  6. {
  7. private readonly ILog _logger = Logging.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  8. private static MultiMessContext _context=new MultiMessContext();
  9. private static TransmitterRepository _repository= new TransmitterRepository(_context);
  10.  
  11. public TransmitterService():base()
  12. {
  13. _context = new MultiMessContext();
  14. _repository = new TransmitterRepository(_context);
  15. }
  16.  
  17. public Transmitter GetBySerialNr(string serialNr)
  18. {
  19. return _repository.GetBySerialNr(serialNr);
  20. }
  21.  
  22. public void SetActualCalibration(Calibration calibration)
  23. {
  24. var tr = _repository.GetBySerialNr(calibration.Transmitter.SerialNumber);
  25. if (tr != null) tr.ActualCalibrationId = calibration.Id;
  26. _context.SaveChanges();
  27. _logger.Info($"Actual calibration of Transmitter {calibration.Transmitter} set to Calibration at {calibration.MeasureDate} done by {calibration.Engineer}");
  28. }
  29.  
  30. public void SetActualTempCoeff(TransmitterTempCoeff tempCoeff)
  31. {
  32. var tr = _repository.GetBySerialNr(tempCoeff.Transmitter.SerialNumber);
  33. if (tr != null) tr.ActualTempCoeffId = tempCoeff.Id;
  34. _context.SaveChanges();
  35. _logger.Info($"Actual TempCoeff of Transmitter {tempCoeff.Transmitter} set to TempCoeff at {tempCoeff.MeasureDate} done by {tempCoeff.Engineer}");
  36. }
  37.  
  38. public void AddTempCoeff(TransmitterTempCoeff tempCoeff)
  39. {
  40. _context.Transmitters.Attach(tempCoeff.Transmitter);
  41. _context.Engineers.Attach(tempCoeff.Engineer);
  42. tempCoeff.Transmitter.TempCoeffs.Add(tempCoeff);
  43. _context.SaveChanges();
  44. _logger.Info($"TempCoeff at {tempCoeff.MeasureDate} - Transmitter => {tempCoeff.Transmitter}");
  45. }
  46.  
  47. public void AddCalibration(Calibration calibration)
  48. {
  49. _context.Transmitters.Attach(calibration.Transmitter);
  50. _context.Engineers.Attach(calibration.Engineer);
  51. calibration.Transmitter.Calibrations.Add(calibration);
  52. _context.SaveChanges();
  53. _logger.Info($"Calibration at {calibration.MeasureDate} - Transmitter => {calibration.Transmitter}");
  54. }
  55.  
  56. public void Register(Transmitter transmitter)
  57. {
  58. _context.Transmitters.Add(transmitter);
  59. _context.SaveChangesAsync();
  60. }
  61.  
  62. //The last 2 methods apply only for Transmitters, so this should be implemented in the derived class.
  63. public bool IsCellRegistered(ref MeasureCell measureCell)
  64. {
  65. var serialNumber = measureCell.SerialNumber;
  66. var registeredMeasureCell = _context.Set<MeasureCell>().SingleOrDefault(x => x.SerialNumber == serialNumber);
  67. if (registeredMeasureCell == null)
  68. {
  69. return false;
  70. }
  71. measureCell = registeredMeasureCell;
  72. return true;
  73. }
  74.  
  75. public bool IsDataSheetNeeded(string measureCellModel)
  76. {
  77. return measureCellModel.Contains("JUMO");
  78. }
  79. }
Add Comment
Please, Sign In to add comment