Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [ApiController]
- public class DataController : ControllerBase
- {
- private readonly ILogger<DataController> _logger;
- private readonly IRepositoryProviderFactory _repositoryProviderFactory;
- #region ctor
- /// <summary>
- /// ctor
- /// </summary>
- public DataController(ILogger<DataController> logger, IRepositoryProviderFactory repositoryProviderFactory)
- {
- _logger = logger;
- _repositoryProviderFactory = repositoryProviderFactory;
- }
- [HttpPost]
- public async Task<IActionResult> GetData([FromBody] SearchModel model)
- {
- if (!ModelState.IsValid)
- {
- return BadRequest(ModelState);
- }
- try
- {
- var data = await _repositoryProviderFactory.GetDataAsync(model);
- return Ok(data);
- }
- catch (Exception ex)
- {
- return StatusCode((int)HttpStatusCode.InternalServerError);
- }
- }
- }
- public Repository1: IDataRepository {}
- public Repository2: IDataRepository {}
- public Repository3: IDataRepository {}
- services.AddScoped<IDataRepository, Repository1>();
- services.AddScoped<IDataRepository, Repository2>();
- services.AddScoped<IDataRepository, Repository3>();
- /// <summary>
- /// ctor
- /// </summary>
- public RepositoryProviderFactory(
- ILogger<RepositoryProviderFactory> logger,
- IEnumerable<IDataRepository> dataRepositories)
- {
- _logger = logger;
- _dataRepositories = dataRepositories;
- }
- public IDataRepository GetRepository()
- {
- // TODO: Logic to cycle repositories
- var instance = dataRepositories.Where();
- return instance;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement