API
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

InfoController.cs 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.AspNetCore.Mvc;
  7. using UnivateProperties_API.Containers.Info;
  8. using UnivateProperties_API.Model;
  9. using UnivateProperties_API.Model.Properties;
  10. namespace UnivateProperties_API.Controllers
  11. {
  12. [Route("api/[controller]")]
  13. [ApiController]
  14. public class InfoController : ControllerBase
  15. {
  16. [HttpGet]
  17. public IActionResult Get()
  18. {
  19. return new OkObjectResult("hallo");
  20. }
  21. [HttpGet("{name}")]
  22. public List<string> Get(string name)
  23. {
  24. List<string> list = new List<string>();
  25. var newClass = System.Reflection.Assembly.GetAssembly(typeof(BaseEntity)).CreateInstance(name);
  26. if(newClass is BaseEntity)
  27. {
  28. list = (newClass as BaseEntity).GetAllProperties().ToList();
  29. }
  30. return list;
  31. }
  32. [HttpGet("getAllClasses")]
  33. public List<ClassDto> GetAllClasses()
  34. {
  35. List<ClassDto> list = new List<ClassDto>();
  36. IEnumerable<BaseEntity> exporters = typeof(BaseEntity)
  37. .Assembly.GetTypes()
  38. .Where(t => t.IsSubclassOf(typeof(BaseEntity)) && !t.IsAbstract)
  39. .Select(t => (BaseEntity)Activator.CreateInstance(t));
  40. foreach (var item in exporters)
  41. {
  42. ClassDto cls = new ClassDto();
  43. list.Add(new ClassDto() { FullName = item.GetType().FullName.ToString(), Name = item.GetType().Name });
  44. }
  45. return list;
  46. }
  47. }
  48. }