ContractManagementService.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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 System.Transactions;
  16. namespace FMSAdmin.Services {
  17. public class ContractManagementService {
  18. private readonly ILogger<ContractManagementService> _logger;
  19. private readonly FMSContext _context;
  20. private readonly StorageHelper _storage;
  21. public ContractManagementService(
  22. ILogger<ContractManagementService> logger,
  23. FMSContext context,
  24. StorageHelper storage) {
  25. _logger = logger;
  26. _context = context;
  27. _storage = storage;
  28. }
  29. public IQueryable<FmsContract> GetAll() {
  30. var query = _context.FmsContract;
  31. return query;
  32. }
  33. public IQueryable<FmsContract> Get(int siteId, int contractId) {
  34. var data = _context.FmsContract.Where(x => x.ContractId == contractId && x.SiteId == siteId);
  35. return data;
  36. }
  37. public void Create(FmsContract data) {
  38. //data.IsUse = true;
  39. using (var trans = new TransactionScope()) {
  40. if (data.CmFile != null && data.CmFile.IsUpload) {
  41. var category = _context.CmFileCategory.First(x => x.Name == "contract");
  42. data.CmFile.SiteId = data.SiteId;
  43. data.CmFile.FileCategory = category;
  44. data.CmFile.CreatedDate = DateTime.Now;
  45. } else {
  46. data.CmFile = null;
  47. }
  48. _context.FmsContract.Add(data);
  49. _context.SaveChanges();
  50. if (data.CmFile != null && data.CmFile.IsUpload) {
  51. // 카피
  52. _storage.CopyEntity(data.CmFile.Path, data.CmFile);
  53. }
  54. trans.Complete();
  55. }
  56. }
  57. public void Edit(int siteId, int contractId, FmsContract data) {
  58. using (var trans = new TransactionScope()) {
  59. if (data.CmFile != null && data.CmFile.IsUpload) {
  60. var category = _context.CmFileCategory.First(x => x.Name == "contract");
  61. data.CmFile.SiteId = data.SiteId;
  62. data.CmFile.FileCategory = category;
  63. data.CmFile.CreatedDate = DateTime.Now;
  64. data.CmFile.Name = data.CmFile.Name;
  65. }
  66. var persist = _context.FmsContract
  67. .Where(x => x.ContractId == contractId && x.SiteId == siteId).FirstOrDefault();
  68. if (persist == null) {
  69. throw new ServiceException("정보를 찾을 수 없습니다.");
  70. }
  71. persist.SiteId = data.SiteId;
  72. persist.ContractId = data.ContractId;
  73. persist.Name = data.Name;
  74. persist.PartnerTypeId = data.PartnerTypeId;
  75. persist.PartnerId = data.PartnerId;
  76. persist.ContractDate = data.ContractDate;
  77. persist.StartDate = data.StartDate;
  78. persist.EndDate = data.EndDate;
  79. persist.OwnerShipName = data.OwnerShipName;
  80. persist.OwnerShipPhoneNo = data.OwnerShipPhoneNo;
  81. persist.CommitmentMan = data.CommitmentMan;
  82. persist.Comment = data.Comment;
  83. persist.ContractClassId = data.ContractClassId;
  84. persist.ContractTypeId = data.ContractTypeId;
  85. persist.ContractMethodId = data.ContractMethodId;
  86. persist.PaymentTypeId = data.PaymentTypeId;
  87. persist.ContractAmountText = data.ContractAmountText;
  88. persist.ContractExeGuaranteeRate = data.ContractExeGuaranteeRate;
  89. persist.DefectGuaranteeRate = data.DefectGuaranteeRate;
  90. persist.DefectGuaranteePeriodText = data.DefectGuaranteePeriodText;
  91. //persist.FileId = data.FileId;
  92. if (data.CmFile != null && data.CmFile.IsUpload) {
  93. persist.CmFile = data.CmFile;
  94. }
  95. if (data.CmFile != null && data.CmFile.IsDelete) {
  96. persist.CmFile = null;
  97. persist.FileId = null;
  98. }
  99. _context.FmsContract.Update(persist);
  100. _context.SaveChanges();
  101. if (data.CmFile != null && data.CmFile.IsUpload) {
  102. // 카피
  103. _storage.CopyEntity(data.CmFile.Path, persist.CmFile);
  104. }
  105. trans.Complete();
  106. }
  107. }
  108. public void Delete(int siteId, int contractId) {
  109. var data = _context.FmsContract.First(x => x.ContractId == contractId && x.SiteId == siteId);
  110. //data.IsUse = false;
  111. using (var trans = new TransactionScope()) {
  112. _context.FmsContract.Remove(data);
  113. _context.SaveChanges();
  114. trans.Complete();
  115. }
  116. }
  117. // public void AddCount(int siteId, int contractId) {
  118. // var persist = _context.FmsContract
  119. // .Where(x => x.contractId == contractId && x.SiteId == siteId).FirstOrDefault();
  120. // if (persist == null) {
  121. // throw new ServiceException("정보를 찾을 수 없습니다.");
  122. // }
  123. // persist.ReadCount += 1;
  124. //
  125. // _context.FmsContract.Update(persist);
  126. // _context.SaveChanges();
  127. // }
  128. }
  129. }