UpdateConfigCommandHandler.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using Application.Abstractions.Data;
  2. using Domain.Entities.Common;
  3. using MediatR;
  4. using Microsoft.EntityFrameworkCore;
  5. using DomainConfig = Domain.Entities.Common.Config;
  6. namespace Application.Features.Config.Commands;
  7. public sealed class UpdateConfigCommandHandler(IAppDbContext db) : IRequestHandler<UpdateConfigCommand>
  8. {
  9. public async Task Handle(UpdateConfigCommand request, CancellationToken cancellationToken)
  10. {
  11. var config = await db.Config.OrderByDescending(x => x.ID).FirstOrDefaultAsync(cancellationToken);
  12. if (config is null)
  13. {
  14. config = DomainConfig.Create();
  15. db.Config.Add(config);
  16. }
  17. var basic = new BasicConfig
  18. {
  19. SiteName = request.Basic.SiteName,
  20. DefaultFeeAmount = request.Basic.DefaultFeeAmount,
  21. DefaultFeeRate = request.Basic.DefaultFeeRate
  22. };
  23. var meta = new MetaConfig
  24. {
  25. Keywords = request.Meta.Keywords,
  26. Description = request.Meta.Description,
  27. Author = request.Meta.Author,
  28. Viewport = request.Meta.Viewport,
  29. ApplicationName = request.Meta.ApplicationName,
  30. Generator = request.Meta.Generator,
  31. Robots = request.Meta.Robots,
  32. Adds = request.Meta.Adds
  33. };
  34. var company = new CompanyConfig
  35. {
  36. Name = request.Company.Name,
  37. RegNo = request.Company.RegNo,
  38. Owner = request.Company.Owner,
  39. Tel = request.Company.Tel,
  40. Fax = request.Company.Fax,
  41. RetailSaleNo = request.Company.RetailSaleNo,
  42. AddedSaleNo = request.Company.AddedSaleNo,
  43. ZipCode = request.Company.ZipCode,
  44. Hosting = request.Company.Hosting,
  45. AdminName = request.Company.AdminName,
  46. AdminEmail = request.Company.AdminEmail,
  47. SiteUrl = request.Company.SiteUrl,
  48. BankCode = request.Company.BankCode,
  49. BankOwner = request.Company.BankOwner,
  50. BankNumber = request.Company.BankNumber
  51. };
  52. var account = new AccountConfig
  53. {
  54. IsRegisterBlock = request.Account.IsRegisterBlock,
  55. IsRegisterEmailAuth = request.Account.IsRegisterEmailAuth,
  56. PasswordMinLength = request.Account.PasswordMinLength,
  57. PasswordUppercaseLength = request.Account.PasswordUppercaseLength,
  58. PasswordNumbersLength = request.Account.PasswordNumbersLength,
  59. PasswordSpecialcharsLength = request.Account.PasswordSpecialcharsLength,
  60. DeniedEmailList = request.Account.DeniedEmailList,
  61. DeniedNameList = request.Account.DeniedNameList,
  62. ChangeEmailDay = request.Account.ChangeEmailDay,
  63. ChangeNameDay = request.Account.ChangeNameDay,
  64. ChangeSummaryDay = request.Account.ChangeSummaryDay,
  65. ChangeIntroDay = request.Account.ChangeIntroDay,
  66. ChangePasswordDay = request.Account.ChangePasswordDay,
  67. MaxLoginTryCount = request.Account.MaxLoginTryCount,
  68. MaxLoginTryLimitSecond = request.Account.MaxLoginTryLimitSecond
  69. };
  70. var emailTemplate = new EmailTemplateConfig
  71. {
  72. RegisterEmailFormTitle = request.EmailTemplate.RegisterEmailFormTitle,
  73. RegisterEmailFormContent = request.EmailTemplate.RegisterEmailFormContent,
  74. RegistrationEmailFormTitle = request.EmailTemplate.RegistrationEmailFormTitle,
  75. RegistrationEmailFormContent = request.EmailTemplate.RegistrationEmailFormContent,
  76. ResetPasswordEmailFormTitle = request.EmailTemplate.ResetPasswordEmailFormTitle,
  77. ResetPasswordEmailFormContent = request.EmailTemplate.ResetPasswordEmailFormContent,
  78. ChangedPasswordEmailFormTitle = request.EmailTemplate.ChangedPasswordEmailFormTitle,
  79. ChangedPasswordEmailFormContent = request.EmailTemplate.ChangedPasswordEmailFormContent,
  80. WithdrawEmailFormTitle = request.EmailTemplate.WithdrawEmailFormTitle,
  81. WithdrawEmailFormContent = request.EmailTemplate.WithdrawEmailFormContent,
  82. EmailVerifyFormTitle = request.EmailTemplate.EmailVerifyFormTitle,
  83. EmailVerifyFormContent = request.EmailTemplate.EmailVerifyFormContent,
  84. ChangedEmailFormTitle = request.EmailTemplate.ChangedEmailFormTitle,
  85. ChangedEmailFormContent = request.EmailTemplate.ChangedEmailFormContent
  86. };
  87. var external = new ExternalApiConfig
  88. {
  89. YouTubeApiKeyEnc = request.External.YouTubeApiKeyEnc,
  90. YouTubeApiName = request.External.YouTubeApiName,
  91. GoogleClientId = request.External.GoogleClientId,
  92. GoogleClientSecretEnc = request.External.GoogleClientSecretEnc,
  93. GoogleAppId = request.External.GoogleAppId
  94. };
  95. var payment = new PaymentConfig
  96. {
  97. };
  98. config.Update(
  99. basic,
  100. meta,
  101. company,
  102. account,
  103. emailTemplate,
  104. external,
  105. payment
  106. );
  107. await db.SaveChangesAsync(cancellationToken);
  108. }
  109. }