ParameterServices.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Bowin.Common.Utility;
  2. using YLShipBuildLandMap.Entity;
  3. using Microsoft.EntityFrameworkCore;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace YLShipBuildLandMap.Services.SystemSetting
  10. {
  11. public class ParameterServices : IParameterServices
  12. {
  13. private YLShipBuildLandMapContext DbContext { get; set; }
  14. public ParameterServices(YLShipBuildLandMapContext dbContext)
  15. {
  16. DbContext = dbContext;
  17. }
  18. public async Task<Nullable<T>> GetParameterValue<T>(string parameterKey) where T : struct
  19. {
  20. var parameter = await DbContext.SysParameter.FirstOrDefaultAsync(x => x.ParameterKey == parameterKey);
  21. if (parameter == null || string.IsNullOrEmpty(parameter.Value)) return null;
  22. T result;
  23. if (parameter.Value.TryParseTo(out result))
  24. {
  25. return result;
  26. }
  27. return null;
  28. }
  29. public async Task<string> GetParameterValue(string parameterKey)
  30. {
  31. var parameter = await DbContext.SysParameter.FirstOrDefaultAsync(x => x.ParameterKey == parameterKey);
  32. if (parameter == null || string.IsNullOrEmpty(parameter.Value)) return null;
  33. return parameter.Value;
  34. }
  35. public async Task SaveTo(string parameterKey, object value)
  36. {
  37. var parameter = await DbContext.SysParameter.FirstOrDefaultAsync(x => x.ParameterKey == parameterKey);
  38. if (parameter == null)
  39. {
  40. parameter = new SysParameter();
  41. parameter.ParameterKey = parameterKey;
  42. if (value != null)
  43. {
  44. parameter.Value = value.ToString();
  45. }
  46. else
  47. {
  48. parameter.Value = null;
  49. }
  50. this.DbContext.Add(parameter);
  51. }
  52. else
  53. {
  54. if (value != null)
  55. {
  56. parameter.Value = value.ToString();
  57. }
  58. else
  59. {
  60. parameter.Value = null;
  61. }
  62. }
  63. await this.DbContext.SaveChangesAsync();
  64. }
  65. }
  66. }