飞星
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

162 lines
5.0 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.EntityFrameworkCore;
  5. using Permission.Entity.DbContext;
  6. using Permission.Entity.News;
  7. using Permission.Entity.System;
  8. using Permission.Infrastructure.Repositories;
  9. using Permission.Infrastructure.WebControls;
  10. using Permission.Service.IServices;
  11. using Permission.Utils.Validate;
  12. namespace Permission.Service.Services
  13. {
  14. public class NewsTypeService : INewsTypeService
  15. {
  16. private readonly IUnitOfWork _unitOfWork;
  17. private readonly PermissionContext _dbContext;
  18. private readonly IBaseRepository<NewsType> _newsTypeRepository;
  19. public NewsTypeService(IUnitOfWork unitOfWork, PermissionContext dbContext, IBaseRepository<NewsType> newsTypeRepository)
  20. {
  21. this._unitOfWork = unitOfWork;
  22. this._dbContext = dbContext;
  23. this._newsTypeRepository = newsTypeRepository;
  24. }
  25. public bool AddModel(NewsType model)
  26. {
  27. try
  28. {
  29. model.GuidId = Guid.NewGuid().ToString();
  30. model.IsEnabled = model.IsEnabled != null;
  31. model.DeleteMark = false;
  32. model.CreateTime = DateTime.Now;
  33. var res = _newsTypeRepository.Save(model);
  34. return res;
  35. }
  36. catch (Exception ex)
  37. {
  38. throw ex;
  39. }
  40. }
  41. public bool ModifyModel(NewsType model)
  42. {
  43. try
  44. {
  45. var role = _newsTypeRepository.Get(model.Id);
  46. role.TypeName = model.TypeName;
  47. role.Img = model.Img;
  48. role.SortCode = model.SortCode;
  49. role.IsEnabled = model.IsEnabled;
  50. role.ModifyTime = DateTime.Now;
  51. role.ModifyUser = model.ModifyUser;
  52. role.Remark = model.Remark;
  53. var res = _newsTypeRepository.Update(role);
  54. return res;
  55. }
  56. catch (Exception ex)
  57. {
  58. throw ex;
  59. }
  60. }
  61. private static readonly Func<PermissionContext, int, NewsType> NewtypeById =
  62. EF.CompileQuery((PermissionContext db, int typeid) => db.NewsTypes
  63. .Include(u => u.NewsInfos)
  64. .FirstOrDefault(c => c.Id == typeid));
  65. public bool DeleteModel(int key)
  66. {
  67. try
  68. {
  69. var flag = false;
  70. if (!key.IsEmpty() || key > 0)
  71. {
  72. var system = NewtypeById(_dbContext, key);
  73. if (system.NewsInfos.Any())
  74. {
  75. system.NewsInfos.Clear();
  76. var model = _newsTypeRepository.Get(key);
  77. _newsTypeRepository.Delete(model);
  78. }
  79. else
  80. {
  81. var model = _newsTypeRepository.Get(key);
  82. _newsTypeRepository.Delete(model);
  83. }
  84. flag = true;
  85. }
  86. else
  87. {
  88. flag = false;
  89. }
  90. return flag;
  91. }
  92. catch (Exception ex)
  93. {
  94. throw ex;
  95. }
  96. }
  97. public NewsType GetNewsTypeByKey(int key)
  98. {
  99. try
  100. {
  101. if (!key.IsEmpty() || key > 0)
  102. {
  103. var data = _newsTypeRepository.Get(key);
  104. return data;
  105. }
  106. return null;
  107. }
  108. catch (Exception e)
  109. {
  110. throw e;
  111. }
  112. }
  113. public Page<NewsType> PageList(string keyword, int pagesize, int pageindex)
  114. {
  115. try
  116. {
  117. int total = 0;
  118. if (keyword.IsEmpty())
  119. {
  120. var data = _newsTypeRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur => ur.SortCode),
  121. u => u,
  122. out total,
  123. u => u.DeleteMark == false);
  124. return data;
  125. }
  126. else
  127. {
  128. var data = _newsTypeRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur => ur.SortCode), u => u,
  129. out total,
  130. u => u.TypeName.Contains(keyword) && u.DeleteMark == false);
  131. return data;
  132. }
  133. }
  134. catch (Exception e)
  135. {
  136. throw e;
  137. }
  138. }
  139. public List<NewsType> GetNewsTypeList()
  140. {
  141. try
  142. {
  143. var data = _newsTypeRepository.QueryEntity<NewsType, int, NewsType>(m => m.IsEnabled.Value == true && m.DeleteMark.Value == false, ms => ms.SortCode.Value, null, true).ToList();
  144. return data;
  145. }
  146. catch (Exception ex)
  147. {
  148. throw ex;
  149. }
  150. }
  151. }
  152. }