ContractManagementService.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using System.Linq;
  2. using FMSAdmin.Data;
  3. using FMSAdmin.Helpers;
  4. using FMSAdmin.Entities;
  5. using Microsoft.Extensions.Logging;
  6. using System;
  7. namespace FMSApp.Services {
  8. public class ContractManagementService {
  9. private readonly ILogger<ContractManagementService> _logger;
  10. private readonly FMSContext _context;
  11. private readonly StorageHelper _storage;
  12. public ContractManagementService(
  13. ILogger<ContractManagementService> logger,
  14. FMSContext context,
  15. StorageHelper storage) {
  16. _logger = logger;
  17. _context = context;
  18. _storage = storage;
  19. }
  20. public void Create(FmsContract data) {
  21. _context.FmsContract.Add(data);
  22. _context.SaveChanges();
  23. }
  24. public void Save(FmsContract data) {
  25. var persist = _context.FmsContract
  26. .Where(x => x.ContractId == data.ContractId && x.SiteId == data.SiteId).FirstOrDefault();
  27. if (persist == null) {
  28. if (data.CmFile != null && data.CmFile.IsUpload) {
  29. data.CmFile.SiteId = data.SiteId;
  30. var category = _context.CmFileCategory.First(x => x.Name == "contract");
  31. data.CmFile.FileCategory = category;
  32. data.CmFile.CreatedDate = DateTime.Now;
  33. } else {
  34. data.CmFile = null;
  35. }
  36. _context.FmsContract.Add(data);
  37. _context.SaveChanges();
  38. if (data.CmFile != null && data.CmFile.IsUpload) {
  39. // 카피
  40. _storage.CopyEntity(data.CmFile.Path, data.CmFile);
  41. }
  42. } else {
  43. if (data.CmFile != null && data.CmFile.IsDelete) {
  44. persist.CmFile = null;
  45. persist.FileId = null;
  46. } else if (data.CmFile != null && data.CmFile.IsUpload) {
  47. var category = _context.CmFileCategory.First(x => x.Name == "contract");
  48. persist.CmFile = new CmFile {
  49. SiteId = data.SiteId,
  50. FileCategory = category,
  51. CreatedDate = DateTime.Now,
  52. Name = data.CmFile.Name,
  53. FileSize = data.CmFile.FileSize,
  54. ContentType = data.CmFile.ContentType,
  55. };
  56. }
  57. persist.PartnerId = data.PartnerId;
  58. persist.PartnerTypeId = data.PartnerTypeId;
  59. persist.SiteId = data.SiteId;
  60. persist.Name = data.Name;
  61. persist.ContractDate = data.ContractDate;
  62. persist.StartDate = data.StartDate;
  63. persist.EndDate = data.EndDate;
  64. persist.OwnerShipName = data.OwnerShipName;
  65. persist.OwnerShipPhoneNo = data.OwnerShipPhoneNo;
  66. persist.CommitmentMan = data.CommitmentMan;
  67. persist.ContractClassId = data.ContractClassId;
  68. persist.PaymentTypeId = data.PaymentTypeId;
  69. persist.ContractTypeId = data.ContractTypeId;
  70. persist.ContractMethodId = data.ContractMethodId;
  71. persist.Comment = data.Comment;
  72. persist.ContractAmountText = data.ContractAmountText;
  73. persist.ContractExeGuaranteeRate = data.ContractExeGuaranteeRate;
  74. persist.DefectGuaranteePeriodText = data.DefectGuaranteePeriodText;
  75. persist.DefectGuaranteeRate = data.DefectGuaranteeRate;
  76. _context.FmsContract.Update(persist);
  77. _context.SaveChanges();
  78. if (data.CmFile != null && data.CmFile.IsUpload) {
  79. // 카피
  80. _storage.CopyEntity(data.CmFile.Path, persist.CmFile);
  81. if (persist.CmFile != null) {
  82. // 파일 삭제시 진짜 DB삭제?
  83. }
  84. }
  85. }
  86. }
  87. public IQueryable<FmsContract> GetAll() {
  88. var query = _context.FmsContract;
  89. return query;
  90. }
  91. public FmsContract Get(int id, int siteId) {
  92. var data = _context.FmsContract.Single(x => x.ContractId == id && x.SiteId == siteId);
  93. return data;
  94. }
  95. public IQueryable<FmsContract> Gets(int id, int siteId) {
  96. var data = _context.FmsContract.Where(x => x.ContractId == id && x.SiteId == siteId);
  97. return data;
  98. }
  99. public void Delete(int id, int siteId) {
  100. var data = _context.FmsContract.First(x => x.ContractId == id && x.SiteId == siteId);
  101. _context.FmsContract.Remove(data);
  102. _context.SaveChanges();
  103. }
  104. }
  105. }