SitemapAuthService.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 FMSAdmin.Services {
  16. public class SitemapAuthService {
  17. private readonly ILogger<SitemapAuthService> _logger;
  18. private readonly FMSContext _context;
  19. public SitemapAuthService(
  20. ILogger<SitemapAuthService> logger,
  21. FMSContext context) {
  22. _logger = logger;
  23. _context = context;
  24. }
  25. public void Save(int siteId, int userGroupId, SitemapType type, SitemapAuth[] list) {
  26. // ID만 넘겼을경우 ID검증
  27. foreach (var data in list) {
  28. /*
  29. if (data.Sitemap == null)
  30. data.Sitemap = _context.Sitemap.Single(x => x.SitemapId == data.SitemapId);
  31. if (data.UserGroup == null)
  32. data.UserGroup = _context.CmUserGroup.Single(x => x.UserGroupId == data.UserGroupId);
  33. */
  34. data.Updated = DateTime.Now;
  35. }
  36. using (var tran = _context.Database.BeginTransaction()) {
  37. // 사용자그룹의 메뉴타입 전체제거
  38. var auths = _context.SitemapAuth.Where(x => x.SiteId == siteId && x.UserGroupId == userGroupId && x.SitemapType == type);
  39. _context.SitemapAuth.RemoveRange(auths);
  40. // 재등록
  41. _context.SitemapAuth.AddRange(list);
  42. _context.SaveChanges();
  43. tran.Commit();
  44. }
  45. }
  46. public SitemapAuth Get(Guid id) {
  47. var query = _context.SitemapAuth.Single(x => x.SitemapAuthId == id);
  48. return query;
  49. }
  50. public IQueryable<SitemapAuth> Gets(Guid id) {
  51. var query = _context.SitemapAuth.Where(x => x.SitemapAuthId == id);
  52. return query;
  53. }
  54. public IQueryable<Sitemap> SitemapAll() {
  55. var query = _context.Sitemap;
  56. return query;
  57. }
  58. }
  59. }