ComplaintsService.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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. namespace FMSApp.Services {
  16. public class ComplaintsService {
  17. private readonly ILogger<ComplaintsService> _logger;
  18. private readonly FMSContext _context;
  19. private readonly StorageHelper _storage;
  20. private readonly AppSettings _appSettings;
  21. public ComplaintsService(
  22. ILogger<ComplaintsService> logger,
  23. FMSContext context,
  24. IOptions<AppSettings> appSettings,
  25. StorageHelper storage) {
  26. _logger = logger;
  27. _context = context;
  28. _appSettings = appSettings.Value;
  29. _storage = storage;
  30. }
  31. public void Save(FmsComplaints data) {
  32. using (var transaction = _context.Database.BeginTransaction()) {
  33. var persist = _context.FmsComplaints
  34. .Where(x => x.SiteId == data.SiteId
  35. && x.ComplaintId == data.ComplaintId).FirstOrDefault();
  36. if (persist == null) {
  37. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  38. data.CmFile1.SiteId = data.SiteId;
  39. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  40. data.CmFile1.FileCategory = category;
  41. data.CmFile1.CreatedDate = DateTime.Now;
  42. } else {
  43. data.CmFile1 = null;
  44. }
  45. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  46. data.CmFile2.SiteId = data.SiteId;
  47. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  48. data.CmFile2.FileCategory = category;
  49. data.CmFile2.CreatedDate = DateTime.Now;
  50. } else {
  51. data.CmFile2 = null;
  52. }
  53. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  54. data.CmFile3.SiteId = data.SiteId;
  55. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  56. data.CmFile3.FileCategory = category;
  57. data.CmFile3.CreatedDate = DateTime.Now;
  58. } else {
  59. data.CmFile3 = null;
  60. }
  61. _context.FmsComplaints.Add(data);
  62. _context.SaveChanges();
  63. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  64. _storage.CopyEntity(data.CmFile1.Path, data.CmFile1);
  65. }
  66. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  67. _storage.CopyEntity(data.CmFile2.Path, data.CmFile2);
  68. }
  69. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  70. _storage.CopyEntity(data.CmFile3.Path, data.CmFile3);
  71. }
  72. } else {
  73. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  74. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  75. persist.CmFile1 = new CmFile {
  76. SiteId = data.SiteId,
  77. FileCategory = category,
  78. CreatedDate = DateTime.Now,
  79. Name = data.CmFile1.Name,
  80. FileSize = data.CmFile1.FileSize,
  81. ContentType = data.CmFile1.ContentType,
  82. };
  83. _logger.LogInformation("upload file1");
  84. } else if (data.CmFile1 != null && data.CmFile1.IsDelete) {
  85. persist.FileId1 = null;
  86. persist.CmFile1 = null;
  87. _logger.LogInformation("delete file1");
  88. }
  89. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  90. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  91. persist.CmFile2 = new CmFile {
  92. SiteId = data.SiteId,
  93. FileCategory = category,
  94. CreatedDate = DateTime.Now,
  95. Name = data.CmFile2.Name,
  96. FileSize = data.CmFile2.FileSize,
  97. ContentType = data.CmFile2.ContentType,
  98. };
  99. _logger.LogInformation("upload file2");
  100. } else if (data.CmFile2 != null && data.CmFile2.IsDelete) {
  101. persist.FileId2 = null;
  102. persist.CmFile2 = null;
  103. _logger.LogInformation("delete file2");
  104. }
  105. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  106. var category = _context.CmFileCategory.First(x => x.Name == "complaint");
  107. persist.CmFile3 = new CmFile {
  108. SiteId = data.SiteId,
  109. FileCategory = category,
  110. CreatedDate = DateTime.Now,
  111. Name = data.CmFile3.Name,
  112. FileSize = data.CmFile3.FileSize,
  113. ContentType = data.CmFile3.ContentType,
  114. };
  115. _logger.LogInformation("upload file3");
  116. } else if (data.CmFile3 != null && data.CmFile3.IsDelete) {
  117. persist.FileId3 = null;
  118. persist.CmFile3 = null;
  119. _logger.LogInformation("delete file3");
  120. }
  121. persist.ComplaintTypeId = data.ComplaintTypeId;
  122. persist.Name = data.Name;
  123. persist.ComplaintLocation = data.ComplaintLocation;
  124. persist.StartDate = data.StartDate;
  125. persist.EndDate = data.EndDate;
  126. persist.CompanyId = data.CompanyId;
  127. persist.DepartmentId = data.DepartmentId;
  128. persist.Reason = data.Reason;
  129. persist.Action = data.Action;
  130. persist.Damage = data.Damage;
  131. persist.Measurement = data.Measurement;
  132. _context.FmsComplaints.Update(persist);
  133. _context.SaveChanges();
  134. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  135. _storage.CopyEntity(data.CmFile1.Path, persist.CmFile1);
  136. }
  137. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  138. _storage.CopyEntity(data.CmFile2.Path, persist.CmFile2);
  139. }
  140. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  141. _storage.CopyEntity(data.CmFile3.Path, persist.CmFile3);
  142. }
  143. }
  144. transaction.Commit();
  145. }
  146. }
  147. public void Delete(int siteId, int complaintId) {
  148. var data = _context.FmsComplaints.First(x => x.SiteId == siteId && x.ComplaintId == complaintId);
  149. _context.FmsComplaints.Remove(data);
  150. _context.SaveChanges();
  151. }
  152. public IQueryable<FmsComplaints> GetAll() {
  153. var query = _context.FmsComplaints;
  154. return query;
  155. }
  156. }
  157. }