API
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.

SearchLogRepository.cs 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. using Microsoft.EntityFrameworkCore;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Diagnostics;
  6. using System.Linq;
  7. using UnivateProperties_API.Containers.Property;
  8. using UnivateProperties_API.Containers.Timeshare;
  9. using UnivateProperties_API.Context;
  10. using UnivateProperties_API.Model.Logging;
  11. namespace UnivateProperties_API.Repository.Logging
  12. {
  13. public class SearchLogRepository : ISearchLogRepository
  14. {
  15. private readonly DataContext _dbContext;
  16. public SearchLogRepository(DataContext dbContext)
  17. {
  18. _dbContext = dbContext;
  19. }
  20. public List<SearchLog> Get(Func<SearchLog, bool> where)
  21. {
  22. return _dbContext.SearchLogs.Where(where).ToList();
  23. }
  24. public List<SearchLog> GetAll()
  25. {
  26. return _dbContext.SearchLogs.ToList();
  27. }
  28. public SearchLog GetDetailed(Func<SearchLog, bool> first)
  29. {
  30. var item = _dbContext.SearchLogs.FirstOrDefault(first);
  31. return item;
  32. }
  33. public List<SearchLog> GetDetailedAll()
  34. {
  35. return _dbContext.SearchLogs.ToList();
  36. }
  37. public List<SearchDisplay> GetSearches()
  38. {
  39. var list = new List<SearchDisplay>();
  40. var logs = GetAll();
  41. foreach (SearchLog log in logs)
  42. {
  43. var searchObject = JsonConvert.DeserializeObject<SearchObject>(log.Search);
  44. list.Add(new SearchDisplay() {
  45. Date = log.Created,
  46. Type = log.Type,
  47. UserName = searchObject.UserName,
  48. Property = searchObject.Property,
  49. Value = searchObject.Value
  50. });
  51. }
  52. return list;
  53. }
  54. public void Insert(SearchLog item)
  55. {
  56. _dbContext.SearchLogs.Add(item);
  57. Save();
  58. }
  59. public void Insert(IEnumerable<SearchLog> items)
  60. {
  61. foreach (var item in items)
  62. {
  63. _dbContext.SearchLogs.Add(item);
  64. Save();
  65. }
  66. }
  67. public void Remove(SearchLog item)
  68. {
  69. _dbContext.SearchLogs.Remove(item);
  70. Save();
  71. }
  72. public void Remove(IEnumerable<SearchLog> items)
  73. {
  74. foreach (var item in items)
  75. {
  76. _dbContext.SearchLogs.Remove(item);
  77. Save();
  78. }
  79. }
  80. public void RemoveAtId(int item)
  81. {
  82. var searchLog = Get(x => x.Id == item).FirstOrDefault();
  83. if (searchLog != null)
  84. {
  85. _dbContext.SearchLogs.Remove(searchLog);
  86. Save();
  87. }
  88. }
  89. public void Save()
  90. {
  91. _dbContext.SaveChanges();
  92. }
  93. public void SaveSearch(SearchObject item)
  94. {
  95. var searchLog = new SearchLog
  96. {
  97. Type = item.Type,
  98. Search = JsonConvert.SerializeObject(item)
  99. };
  100. _dbContext.SearchLogs.Add(searchLog);
  101. Save();
  102. }
  103. public void Update(SearchLog item)
  104. {
  105. _dbContext.Entry(item).State = EntityState.Modified;
  106. Save();
  107. }
  108. public int NewId()
  109. {
  110. // Not sure if properties need it
  111. return 0;
  112. }
  113. }
  114. }