API

SearchLogRepository.cs 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 = string.Format("{0:yyyy-MM-dd}", log.Created),
  46. Time = string.Format("{0:HH:mm:ss}", log.Created),
  47. Type = log.Type,
  48. UserName = searchObject.UserName,
  49. Property = searchObject.Property,
  50. Value = searchObject.Value
  51. });
  52. }
  53. return list;
  54. }
  55. public void Insert(SearchLog item)
  56. {
  57. _dbContext.SearchLogs.Add(item);
  58. Save();
  59. }
  60. public void Insert(IEnumerable<SearchLog> items)
  61. {
  62. foreach (var item in items)
  63. {
  64. _dbContext.SearchLogs.Add(item);
  65. Save();
  66. }
  67. }
  68. public void Remove(SearchLog item)
  69. {
  70. _dbContext.SearchLogs.Remove(item);
  71. Save();
  72. }
  73. public void Remove(IEnumerable<SearchLog> items)
  74. {
  75. foreach (var item in items)
  76. {
  77. _dbContext.SearchLogs.Remove(item);
  78. Save();
  79. }
  80. }
  81. public void RemoveAtId(int item)
  82. {
  83. var searchLog = Get(x => x.Id == item).FirstOrDefault();
  84. if (searchLog != null)
  85. {
  86. _dbContext.SearchLogs.Remove(searchLog);
  87. Save();
  88. }
  89. }
  90. public void Save()
  91. {
  92. _dbContext.SaveChanges();
  93. }
  94. public void SaveSearch(SearchObject item)
  95. {
  96. var searchLog = new SearchLog
  97. {
  98. Type = item.Type,
  99. Search = JsonConvert.SerializeObject(item)
  100. };
  101. _dbContext.SearchLogs.Add(searchLog);
  102. Save();
  103. }
  104. public void Update(SearchLog item)
  105. {
  106. _dbContext.Entry(item).State = EntityState.Modified;
  107. Save();
  108. }
  109. public int NewId()
  110. {
  111. // Not sure if properties need it
  112. return 0;
  113. }
  114. }
  115. }