FloorService.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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 FloorService {
  8. private readonly ILogger<FloorService> _logger;
  9. private readonly FMSContext _context;
  10. public FloorService(
  11. ILogger<FloorService> logger,
  12. FMSContext context) {
  13. _logger = logger;
  14. _context = context;
  15. }
  16. // public void CreateAllSite() {
  17. // var siteList = _context.CmSite.Where(x => x.SiteId != 100).OrderBy(x => x.SortOrderNo).ToList();
  18. // var floorCodeList = _context.CmFloorCode.OrderBy(x => x.SortNum).ToList();
  19. // //IList<CmFloor> floorList = new List<CmFloor>();
  20. // if (_context.CmFloor.ToList().Count() == 0) {
  21. // foreach (var site in siteList) {
  22. // foreach (var code in floorCodeList) {
  23. // _logger.LogError(site.SiteId + "");
  24. // _logger.LogError(site.CmBuilding.First().BuildingId + "");
  25. // _logger.LogError(code.FloorCode + "");
  26. // _logger.LogError(code.Name + "");
  27. // _context.CmFloor.Add(new CmFloor {
  28. // FloorId = 0,
  29. // SiteId = site.SiteId,
  30. // BuildingId = site.CmBuilding.First().BuildingId,
  31. // FloorCode = code.FloorCode,
  32. // Name = code.Name,
  33. // });
  34. // _context.SaveChanges();
  35. // }
  36. // }
  37. // }
  38. // }
  39. public void Create(CmFloor data) {
  40. checkName(data);
  41. _context.CmFloor.Add(data);
  42. _context.SaveChanges();
  43. }
  44. public void Edit(int id, int siteId, CmFloor data) {
  45. var persist = _context.CmFloor
  46. .Where(x => x.FloorId == id && x.SiteId == siteId).FirstOrDefault();
  47. if (persist == null) {
  48. throw new ServiceException("정보를 찾을 수 없습니다.");
  49. }
  50. if (!persist.Name.Equals(data.Name)) {
  51. checkName(data);
  52. }
  53. persist.SiteId = data.SiteId;
  54. persist.BuildingId = data.BuildingId;
  55. persist.Name = data.Name;
  56. persist.FloorCode = data.FloorCode;
  57. _context.CmFloor.Update(persist);
  58. _context.SaveChanges();
  59. }
  60. public void ImportExcel(IList<CmFloor> list) {
  61. using (var transaction = _context.Database.BeginTransaction()) {
  62. _context.CmFloor.AddRange(list);
  63. _context.SaveChanges();
  64. transaction.Commit();
  65. }
  66. }
  67. public int checkName(CmFloor data, bool isExcel = false) {
  68. var check = _context.CmFloor.Where(x => x.SiteId == data.SiteId && x.BuildingId == data.BuildingId && x.Name == data.Name).Count();
  69. if (!isExcel && check > 0) {
  70. throw new ServiceException("이미 동일 정보가 존재합니다.(빌딩명칭, 층 명칭 확인 필요)");
  71. }
  72. return check;
  73. }
  74. public void Delete(int id, int siteId) {
  75. var data = _context.CmFloor.First(x => x.FloorId == id && x.SiteId == siteId);
  76. _context.CmFloor.Remove(data);
  77. _context.SaveChanges();
  78. }
  79. public IQueryable<CmFloor> GetAll() {
  80. var query = _context.CmFloor;
  81. return query;
  82. }
  83. public IQueryable<CmFloor> Get(int id, int siteId) {
  84. var data = _context.CmFloor.Where(x => x.FloorId == id && x.SiteId == siteId);
  85. return data;
  86. }
  87. }
  88. }