MonthWorkService.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using FMSAdmin.Data;
  4. using FMSAdmin.Entities;
  5. using Microsoft.Extensions.Logging;
  6. namespace FMSAdmin.Services {
  7. public class MonthWorkService {
  8. private readonly ILogger<MonthWorkService> _logger;
  9. private readonly FMSContext _context;
  10. public MonthWorkService(
  11. ILogger<MonthWorkService> logger,
  12. FMSContext context) {
  13. _logger = logger;
  14. _context = context;
  15. }
  16. public void Create(FmsMonthKeyWork data) {
  17. using (var transaction = _context.Database.BeginTransaction()) {
  18. if (data.IsAllSite) {
  19. var temp = _context.FmsMonthKeyWork.Where(x => x.Month == data.Month).ToList();
  20. _context.FmsMonthKeyWork.RemoveRange(temp);
  21. var siteIdList = _context.CmSite.Select(x => x.SiteId).ToList();
  22. IList<FmsMonthKeyWork> list = new List<FmsMonthKeyWork>();
  23. foreach (var siteId in siteIdList) {
  24. var mothKeywork = new FmsMonthKeyWork {
  25. SiteId = siteId,
  26. Month = data.Month,
  27. WorkName = data.WorkName,
  28. };
  29. list.Add(mothKeywork);
  30. }
  31. _context.FmsMonthKeyWork.AddRange(list);
  32. _context.SaveChanges();
  33. } else {
  34. checkMonth(data);
  35. _context.FmsMonthKeyWork.Add(data);
  36. _context.SaveChanges();
  37. }
  38. transaction.Commit();
  39. }
  40. }
  41. public void Edit(int siteId, int month, FmsMonthKeyWork data) {
  42. var persist = _context.FmsMonthKeyWork
  43. .Where(x => x.Month == month && x.SiteId == siteId).FirstOrDefault();
  44. if (persist == null) {
  45. throw new ServiceException("정보를 찾을 수 없습니다.");
  46. }
  47. persist.SiteId = data.SiteId;
  48. persist.Month = data.Month;
  49. persist.WorkName = data.WorkName;
  50. checkMonth(persist);
  51. _context.FmsMonthKeyWork.Update(persist);
  52. _context.SaveChanges();
  53. }
  54. public void Delete(int siteId, int month) {
  55. var data = _context.FmsMonthKeyWork.First(x => x.Month == month && x.SiteId == siteId);
  56. _context.FmsMonthKeyWork.Remove(data);
  57. _context.SaveChanges();
  58. }
  59. public IQueryable<FmsMonthKeyWork> GetAll() {
  60. var query = _context.FmsMonthKeyWork;
  61. return query;
  62. }
  63. public IQueryable<FmsMonthKeyWork> Get(int siteId, int month) {
  64. var data = _context.FmsMonthKeyWork.Where(x => x.Month == month && x.SiteId == siteId);
  65. return data;
  66. }
  67. public void checkMonth(FmsMonthKeyWork data) {
  68. var check = _context.FmsMonthKeyWork.Where(x => x.SiteId == data.SiteId && x.Month == data.Month).Count();
  69. if (check > 0 && data.MonthKeyWorkId == 0) {
  70. var site = _context.CmSite.Where(x => x.SiteId == data.SiteId).FirstOrDefault();
  71. throw new ServiceException(site.Name + "의 " + data.Month + "월 업무를 이미 등록 하셨습니다.");
  72. }
  73. }
  74. public string GetKeyWork(int siteId, int month) {
  75. var keyWork = _context.FmsMonthKeyWork.Where(x => x.SiteId == siteId && x.Month == month).FirstOrDefault();
  76. if (keyWork == null) {
  77. return "";
  78. } else {
  79. return keyWork.WorkName;
  80. }
  81. }
  82. }
  83. }