您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Diligent.WebAPI.Data;
  2. using Diligent.WebAPI.Data.Entities;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Diligent.WebAPI.Tests
  5. {
  6. public static class Helpers<T> where T : class
  7. {
  8. public static async Task<DatabaseContext> GetDatabaseContext(List<T> applicants)
  9. {
  10. var options = new DbContextOptionsBuilder<DatabaseContext>()
  11. .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
  12. .Options;
  13. var databaseContext = new DatabaseContext(options);
  14. databaseContext.Database.EnsureCreated();
  15. if (!await databaseContext.Set<T>().AnyAsync())
  16. {
  17. await databaseContext.Set<T>().AddRangeAsync(applicants);
  18. await databaseContext.SaveChangesAsync();
  19. }
  20. return databaseContext;
  21. }
  22. public static async Task<DatabaseContext> GetDatabaseContextWithRelation(List<T> users, List<RefreshToken> tokens)
  23. {
  24. var options = new DbContextOptionsBuilder<DatabaseContext>()
  25. .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
  26. .Options;
  27. var databaseContext = new DatabaseContext(options);
  28. databaseContext.Database.EnsureCreated();
  29. if (!await databaseContext.Set<T>().AnyAsync() || !await databaseContext.Set<RefreshToken>().AnyAsync())
  30. {
  31. await databaseContext.Set<T>().AddRangeAsync(users);
  32. await databaseContext.Set<RefreshToken>().AddRangeAsync(tokens);
  33. await databaseContext.SaveChangesAsync();
  34. }
  35. return databaseContext;
  36. }
  37. }
  38. }