BuildingService.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Linq;
  2. using FMSAdmin.Data;
  3. using FMSAdmin.Entities;
  4. using Microsoft.Extensions.Logging;
  5. namespace FMSAdmin.Services {
  6. public class BuildingService {
  7. private readonly ILogger<BuildingService> _logger;
  8. private readonly FMSContext _context;
  9. public BuildingService(
  10. ILogger<BuildingService> logger,
  11. FMSContext context) {
  12. _logger = logger;
  13. _context = context;
  14. }
  15. public void Create(CmBuilding data) {
  16. checkName(data);
  17. if (_context.CmBuilding.Where(x => x.SiteId == data.SiteId).Count() > 0) {
  18. throw new ServiceException("하나의 빌딩만 등록할 수 있습니다.");
  19. }
  20. data.IsUse = true;
  21. _context.CmBuilding.Add(data);
  22. _context.SaveChanges();
  23. }
  24. public void Edit(int id, int siteId, CmBuilding data) {
  25. var persist = _context.CmBuilding
  26. .Where(x => x.BuildingId == id && x.SiteId == siteId).FirstOrDefault();
  27. if (persist == null) {
  28. throw new ServiceException("정보를 찾을 수 없습니다.");
  29. }
  30. if (!persist.Name.Equals(data.Name)) {
  31. checkName(data);
  32. }
  33. persist.SiteId = data.SiteId;
  34. persist.Name = data.Name;
  35. _context.CmBuilding.Update(persist);
  36. _context.SaveChanges();
  37. }
  38. public void checkName(CmBuilding data) {
  39. var check = _context.CmBuilding.Where(x => x.SiteId == data.SiteId && x.Name == data.Name).Count();
  40. if (check > 0) {
  41. throw new ServiceException("이미 동일 이름이 존재합니다.");
  42. }
  43. }
  44. public void Delete(int id, int siteId) {
  45. var data = _context.CmBuilding.First(x => x.BuildingId == id && x.SiteId == siteId);
  46. _context.CmBuilding.Remove(data);
  47. _context.SaveChanges();
  48. }
  49. public IQueryable<CmBuilding> GetAll() {
  50. var query = _context.CmBuilding;
  51. return query;
  52. }
  53. public IQueryable<CmBuilding> Get(int id, int siteId) {
  54. var data = _context.CmBuilding.Where(x => x.BuildingId == id && x.SiteId == siteId);
  55. return data;
  56. }
  57. }
  58. }