郑州市第一人民医院

Sys_Login_LogsRepository.cs 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using MadRunFabric.Common;
  2. using MadRunFabric.Common.Options;
  3. using Microsoft.Extensions.Logging;
  4. using Microsoft.Extensions.Options;
  5. using MongoDB.Bson;
  6. using MongoDB.Bson.Serialization;
  7. using MongoDB.Driver;
  8. using SignTokenApi.IRepositories;
  9. using MadRunFabric.Model;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Threading.Tasks;
  13. namespace SignTokenApi.Repositories
  14. {
  15. public class Sys_Login_LogsRepository : BaseRepository<Sys_Login_Logs, string>, ISys_Login_LogsRepository
  16. {
  17. protected readonly IMongoCollection<Sys_Login_Logs> m_collection;
  18. protected readonly ILogger<BaseRepository<Sys_Login_Logs, string>> _logger;
  19. public Sys_Login_LogsRepository(IOptions<MongodbOptions> settings, ILogger<BaseRepository<Sys_Login_Logs, string>> logger) : base(settings, logger)
  20. {
  21. m_collection = _collection;
  22. _logger = logger;
  23. }
  24. public IEnumerable<object> GetLogs()
  25. {
  26. try
  27. {
  28. //可限制返回的文档中的字段或者重命名其中的字段
  29. var project = new BsonDocument{
  30. { "_id",0},
  31. { "username",1},
  32. { "usercode",1}
  33. };
  34. return BsonSerializer.Deserialize<IEnumerable<object>>(_collection.Aggregate().Lookup("sys_user_account", "usercode", "usercode", "result").Project(project).ToList().ToJson());
  35. }
  36. catch (Exception ex)
  37. {
  38. _logger.LogError(ex.ToString());
  39. throw ex;
  40. }
  41. }
  42. }
  43. }