Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. [ApiController]
  2. public class DataController : ControllerBase
  3. {
  4. private readonly ILogger<DataController> _logger;
  5. private readonly IRepositoryProviderFactory _repositoryProviderFactory;
  6.  
  7. #region ctor
  8.  
  9. /// <summary>
  10. /// ctor
  11. /// </summary>
  12. public DataController(ILogger<DataController> logger, IRepositoryProviderFactory repositoryProviderFactory)
  13. {
  14. _logger = logger;
  15. _repositoryProviderFactory = repositoryProviderFactory;
  16. }
  17.  
  18. [HttpPost]
  19. public async Task<IActionResult> GetData([FromBody] SearchModel model)
  20. {
  21. if (!ModelState.IsValid)
  22. {
  23. return BadRequest(ModelState);
  24. }
  25.  
  26. try
  27. {
  28. var data = await _repositoryProviderFactory.GetDataAsync(model);
  29.  
  30. return Ok(data);
  31.  
  32. }
  33. catch (Exception ex)
  34. {
  35. return StatusCode((int)HttpStatusCode.InternalServerError);
  36. }
  37. }
  38. }
  39.  
  40. public Repository1: IDataRepository {}
  41. public Repository2: IDataRepository {}
  42. public Repository3: IDataRepository {}
  43.  
  44. services.AddScoped<IDataRepository, Repository1>();
  45. services.AddScoped<IDataRepository, Repository2>();
  46. services.AddScoped<IDataRepository, Repository3>();
  47.  
  48. /// <summary>
  49. /// ctor
  50. /// </summary>
  51. public RepositoryProviderFactory(
  52. ILogger<RepositoryProviderFactory> logger,
  53. IEnumerable<IDataRepository> dataRepositories)
  54. {
  55. _logger = logger;
  56. _dataRepositories = dataRepositories;
  57. }
  58.  
  59. public IDataRepository GetRepository()
  60. {
  61. // TODO: Logic to cycle repositories
  62.  
  63. var instance = dataRepositories.Where();
  64.  
  65. return instance;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement