FormulaService.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IdentityModel.Tokens.Jwt;
  4. using System.Linq;
  5. using System.Security.Claims;
  6. using System.Text;
  7. using FMSAdmin.Data;
  8. using FMSAdmin.Helpers;
  9. using FMSAdmin.Entities;
  10. using Microsoft.EntityFrameworkCore;
  11. using Microsoft.Extensions.Logging;
  12. using Microsoft.Extensions.Options;
  13. using Microsoft.IdentityModel.Tokens;
  14. using FMSAdmin.Models;
  15. using FMSAdmin.Models.Formula;
  16. using System.Transactions;
  17. namespace FMSAdmin.Services {
  18. public class FormulaService {
  19. private readonly ILogger<FormulaService> _logger;
  20. private readonly FMSContext _context;
  21. public FormulaService(
  22. ILogger<FormulaService> logger,
  23. FMSContext context) {
  24. _logger = logger;
  25. _context = context;
  26. }
  27. public void Save(BemsFormula data) {
  28. using (var trans = new TransactionScope()) {
  29. data.Formula = data.Formula.ToUpper();
  30. var persist = _context.BemsFormula
  31. .Where(x => x.SiteId == data.SiteId && x.FacilityTypeId == data.FacilityTypeId && x.FacilityCode == data.FacilityCode && x.FormulaId == data.FormulaId).FirstOrDefault();
  32. if (persist == null) {
  33. _context.BemsFormula.Add(data);
  34. _context.SaveChanges();
  35. } else {
  36. persist.Formula = data.Formula;
  37. if (persist.BemsFormulaParameter != null) {
  38. foreach (var parm in persist.BemsFormulaParameter.ToList()) {
  39. _context.BemsFormulaParameter.Remove(parm);
  40. }
  41. _context.SaveChanges();
  42. }
  43. foreach (var formulaParameterInfo in data.BemsFormulaParameter) {
  44. persist.BemsFormulaParameter.Add(new BemsFormulaParameter() {
  45. SiteId = persist.SiteId,
  46. FacilityTypeId = persist.FacilityTypeId,
  47. FacilityCode = persist.FacilityCode,
  48. FormulaId = persist.FormulaId,
  49. ParameterId = formulaParameterInfo.ParameterId,
  50. ParameterFacilityCode = formulaParameterInfo.ParameterFacilityCode,
  51. ParameterPropertyId = formulaParameterInfo.ParameterPropertyId
  52. });
  53. }
  54. _context.BemsFormula.Update(persist);
  55. _context.SaveChanges();
  56. }
  57. trans.Complete();
  58. }
  59. }
  60. }
  61. }