ManualService.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 FMSApp.Services {
  17. public class ManualService {
  18. private readonly ILogger<ManualService> _logger;
  19. private readonly FMSContext _context;
  20. private readonly AppSettings _appSettings;
  21. private readonly StorageHelper _storage;
  22. public ManualService(
  23. ILogger<ManualService> logger,
  24. FMSContext context,
  25. IOptions<AppSettings> appSettings,
  26. StorageHelper storage
  27. ) {
  28. _logger = logger;
  29. _context = context;
  30. _appSettings = appSettings.Value;
  31. _storage = storage;
  32. }
  33. public void Save(FmsManual data) {
  34. using (var trans = new TransactionScope()) {
  35. var persist = _context.FmsManual
  36. .Where(x => x.SiteId == data.SiteId
  37. && x.ManualId == data.ManualId).FirstOrDefault();
  38. if (persist == null) {
  39. var check = _context.FmsManual.Where(x => x.SiteId == data.SiteId
  40. && x.ManualId == data.ManualId).Count();
  41. if (check > 0) {
  42. throw new ServiceException("아이디가 중복됩니다.");
  43. }
  44. if (data.CmFile != null && data.CmFile.IsUpload) {
  45. data.CmFile.SiteId = data.SiteId;
  46. var category = _context.CmFileCategory.First(x => x.Name == "manual");
  47. data.CmFile.FileCategory = category;
  48. data.CmFile.CreatedDate = DateTime.Now;
  49. } else {
  50. data.CmFile = null;
  51. }
  52. data.FmsManualHistory.Add(new FmsManualHistory {
  53. SiteId = data.SiteId,
  54. RevisionNo = 0,
  55. Description = data.Description,
  56. CmFile = data.CmFile,
  57. UpdatedDate = DateTime.Now,
  58. UpdatedUserId = data.CreateUserId
  59. });
  60. _context.FmsManual.Add(data);
  61. _context.SaveChanges();
  62. if (data.CmFile != null && data.CmFile.IsUpload) {
  63. _storage.CopyEntity(data.CmFile.Path, data.CmFile);
  64. }
  65. } else {
  66. persist.ManualNo = data.ManualNo;
  67. persist.ManualTypeId = data.ManualTypeId;
  68. persist.ManualGroupId = data.ManualGroupId;
  69. persist.Name = data.Name;
  70. persist.ManualNo = data.ManualNo;
  71. persist.Description = data.Description;
  72. _context.FmsManual.Update(persist);
  73. _context.SaveChanges();
  74. }
  75. trans.Complete();
  76. }
  77. }
  78. public void Delete(int siteId, int ManualId) {
  79. var data = _context.FmsManual.First(x => x.SiteId == siteId && x.ManualId == ManualId);
  80. _context.FmsManual.Remove(data);
  81. _context.SaveChanges();
  82. }
  83. public IQueryable<FmsManual> GetAll() {
  84. var query = _context.FmsManual;
  85. return query;
  86. }
  87. }
  88. }