API
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. namespace UnivateProperties_API.Controllers
  10. {
  11. [Route("api/[controller]")]
  12. [ApiController]
  13. public class InfoController : ControllerBase
  14. {
  15. [HttpGet]
  16. public IActionResult Get()
  17. {
  18. return new OkObjectResult("hallo");
  19. }
  20. [HttpGet("{name}")]
  21. public List<string> Get(string name)
  22. {
  23. List<string> list = new List<string>();
  24. var newClass = System.Reflection.Assembly.GetAssembly(typeof(BaseEntity)).CreateInstance(name);
  25. if(newClass is BaseEntity)
  26. {
  27. list = (newClass as BaseEntity).GetAllProperties().ToList();
  28. }
  29. return list;
  30. }
  31. [HttpGet("getAllClasses")]
  32. public List<ClassDto> GetAllClasses()
  33. {
  34. List<ClassDto> list = new List<ClassDto>();
  35. IEnumerable<BaseEntity> exporters = typeof(BaseEntity)
  36. .Assembly.GetTypes()
  37. .Where(t => t.IsSubclassOf(typeof(BaseEntity)) && !t.IsAbstract)
  38. .Select(t => (BaseEntity)Activator.CreateInstance(t));
  39. foreach(var item in exporters)
  40. {
  41. ClassDto cls = new ClassDto();
  42. list.Add(new ClassDto() { FullName = item.GetType().FullName.ToString(), Name = item.GetType().Name });
  43. }
  44. return list;
  45. }
  46. }
  47. }