AccidentService.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  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 AccidentService {
  17. private readonly ILogger<AccidentService> _logger;
  18. private readonly FMSContext _context;
  19. private readonly StorageHelper _storage;
  20. private readonly AppSettings _appSettings;
  21. public AccidentService(
  22. ILogger<AccidentService> 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(FmsAccident data) {
  32. using (var transaction = _context.Database.BeginTransaction()) {
  33. var persist = _context.FmsAccident
  34. .Where(x => x.SiteId == data.SiteId
  35. && x.AccidentId == data.AccidentId).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 == "accident");
  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 == "accident");
  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 == "accident");
  56. data.CmFile3.FileCategory = category;
  57. data.CmFile3.CreatedDate = DateTime.Now;
  58. } else {
  59. data.CmFile3 = null;
  60. }
  61. if (data.CmFile4 != null && data.CmFile4.IsUpload) {
  62. data.CmFile4.SiteId = data.SiteId;
  63. var category = _context.CmFileCategory.First(x => x.Name == "accident");
  64. data.CmFile4.FileCategory = category;
  65. data.CmFile4.CreatedDate = DateTime.Now;
  66. } else {
  67. data.CmFile4 = null;
  68. }
  69. _context.FmsAccident.Add(data);
  70. _context.SaveChanges();
  71. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  72. _storage.CopyEntity(data.CmFile1.Path, data.CmFile1);
  73. }
  74. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  75. _storage.CopyEntity(data.CmFile2.Path, data.CmFile2);
  76. }
  77. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  78. _storage.CopyEntity(data.CmFile3.Path, data.CmFile3);
  79. }
  80. if (data.CmFile4 != null && data.CmFile4.IsUpload) {
  81. _storage.CopyEntity(data.CmFile4.Path, data.CmFile4);
  82. }
  83. } else {
  84. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  85. var category = _context.CmFileCategory.First(x => x.Name == "accident");
  86. persist.CmFile1 = new CmFile {
  87. SiteId = data.SiteId,
  88. FileCategory = category,
  89. CreatedDate = DateTime.Now,
  90. Name = data.CmFile1.Name,
  91. FileSize = data.CmFile1.FileSize,
  92. ContentType = data.CmFile1.ContentType,
  93. };
  94. _logger.LogInformation("upload file1");
  95. } else if (data.CmFile1 != null && data.CmFile1.IsDelete) {
  96. persist.FileId1 = null;
  97. persist.CmFile1 = null;
  98. _logger.LogInformation("delete file1");
  99. }
  100. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  101. var category = _context.CmFileCategory.First(x => x.Name == "accident");
  102. persist.CmFile2 = new CmFile {
  103. SiteId = data.SiteId,
  104. FileCategory = category,
  105. CreatedDate = DateTime.Now,
  106. Name = data.CmFile2.Name,
  107. FileSize = data.CmFile2.FileSize,
  108. ContentType = data.CmFile2.ContentType,
  109. };
  110. _logger.LogInformation("upload file2");
  111. } else if (data.CmFile2 != null && data.CmFile2.IsDelete) {
  112. persist.FileId2 = null;
  113. persist.CmFile2 = null;
  114. _logger.LogInformation("delete file2");
  115. }
  116. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  117. var category = _context.CmFileCategory.First(x => x.Name == "accident");
  118. persist.CmFile3 = new CmFile {
  119. SiteId = data.SiteId,
  120. FileCategory = category,
  121. CreatedDate = DateTime.Now,
  122. Name = data.CmFile3.Name,
  123. FileSize = data.CmFile3.FileSize,
  124. ContentType = data.CmFile3.ContentType,
  125. };
  126. _logger.LogInformation("upload file3");
  127. } else if (data.CmFile3 != null && data.CmFile3.IsDelete) {
  128. persist.FileId3 = null;
  129. persist.CmFile3 = null;
  130. _logger.LogInformation("delete file3");
  131. }
  132. if (data.CmFile4 != null && data.CmFile4.IsUpload) {
  133. var category = _context.CmFileCategory.First(x => x.Name == "accident");
  134. persist.CmFile4 = new CmFile {
  135. SiteId = data.SiteId,
  136. FileCategory = category,
  137. CreatedDate = DateTime.Now,
  138. Name = data.CmFile4.Name,
  139. FileSize = data.CmFile4.FileSize,
  140. ContentType = data.CmFile4.ContentType,
  141. };
  142. _logger.LogInformation("upload file4");
  143. } else if (data.CmFile4 != null && data.CmFile4.IsDelete) {
  144. persist.FileId4 = null;
  145. persist.CmFile4 = null;
  146. _logger.LogInformation("delete file4");
  147. }
  148. persist.AccidentTypeId = data.AccidentTypeId;
  149. persist.Name = data.Name;
  150. persist.AccidentLocation = data.AccidentLocation;
  151. persist.StartDate = data.StartDate;
  152. persist.EndDate = data.EndDate;
  153. persist.CompanyId = data.CompanyId;
  154. persist.DepartmentId = data.DepartmentId;
  155. persist.Reason = data.Reason;
  156. persist.Action = data.Action;
  157. persist.Action2 = data.Action2;
  158. persist.Damage = data.Damage;
  159. persist.Measurement = data.Measurement;
  160. persist.Firstwitness = data.Firstwitness;
  161. persist.VictimName = data.VictimName;
  162. persist.VictimRelation = data.VictimRelation;
  163. persist.VictimAge = data.VictimAge;
  164. persist.ClosingDate = data.ClosingDate;
  165. persist.IsInsurance = data.IsInsurance;
  166. persist.InsuranceContent = data.InsuranceContent;
  167. _context.FmsAccident.Update(persist);
  168. _context.SaveChanges();
  169. if (data.CmFile1 != null && data.CmFile1.IsUpload) {
  170. _storage.CopyEntity(data.CmFile1.Path, persist.CmFile1);
  171. }
  172. if (data.CmFile2 != null && data.CmFile2.IsUpload) {
  173. _storage.CopyEntity(data.CmFile2.Path, persist.CmFile2);
  174. }
  175. if (data.CmFile3 != null && data.CmFile3.IsUpload) {
  176. _storage.CopyEntity(data.CmFile3.Path, persist.CmFile3);
  177. }
  178. if (data.CmFile4 != null && data.CmFile4.IsUpload) {
  179. _storage.CopyEntity(data.CmFile4.Path, persist.CmFile4);
  180. }
  181. }
  182. transaction.Commit();
  183. }
  184. }
  185. public void Delete(int siteId, int accidentId) {
  186. var data = _context.FmsAccident.First(x => x.SiteId == siteId && x.AccidentId == accidentId);
  187. _context.FmsAccident.Remove(data);
  188. _context.SaveChanges();
  189. }
  190. public IQueryable<FmsAccident> GetAll() {
  191. var query = _context.FmsAccident;
  192. return query;
  193. }
  194. }
  195. }