RSGC – Skinny Controllers- part 7

 

 

name Skinny Controllers
nuget

https://www.nuget.org/packages/SkinnyControllersCommon/
https://www.nuget.org/packages/SkinnyControllersGenerator/

link http://msprogrammer.serviciipeweb.ro/category/roslyn/
author Andrei Ignat

This will generate code for WebAPI for each method of a field in the controller
 

The code that you start with is


    public class PersonRepository                          

    {

        public async Task<Person> Get(int id)

        {

            await Task.Delay(1000);

            return new Person()

            {

                ID = id,

                Name = "Andrei " + id

            };

        }

    

        //add more functions here to make the demo

    }


The code that you will use is



    [AutoActions(template = TemplateIndicator.AllPostWithRecord,  FieldsName = new[] { "*" }, ExcludeFields = new[] { "_logger" })] 

    [ApiController]

    [Route("[controller]/[action]")]

    public partial class PersonController : ControllerBase

    {

        private readonly PersonRepository pr;

        private readonly ILogger<PersonController> _logger;

    

        public PersonController(PersonRepository pr, ILogger<PersonController> logger)

        {

            this.pr = pr;

            _logger = logger;

        }

    

    }

 

The code that is generated is


    [HttpPost]                                                                                             

    public System.Threading.Tasks.Task<AOPSkinnyController.Classes.Person> Get( recGet_143266108 data ){

        

            return 

        

        pr.Get(data.id);

    

    }

Example Code: https://github.com/ignatandrei/RSCG_Examples/tree/main/SkinnyControllers

All RSCG

NrBlog Post
1RSCG–part 1
2RSCG- AppVersion–part 2
3http://msprogrammer.serviciipeweb.ro/2021/02/17/rsgc-enum-part-3/
4RSGC-JSON to Class- part 4
5RSGC-Constructor – Deconstructor – part 5
6RSGC – DTO Mapper – part 6
7RSGC – Skinny Controllers- part 7
8RSGC-Builder Design Pattern – part 8
9RSGC- MetadataFromObject – part 9
10RSGC- Dynamic Mock – part 10
11RSCG- Method Decorator – part 11
12RSCG – Curry – Partial function – part 12
13RSCG- part 13 – IFormattable
14RSCG- part 14 – DP_Decorator
15RSCG- part 15 – Expression Generator
16RSCG- part 16 – Many Others
17RSCG- the book
18RSCG–Template Rendering- part 17
19CI Version
20HttpClientGenerator
21Query from database
22AutoRegister
23TinyTypes
24Static2Interface
25AppSettings
26Properties
27
Roslyn Source Code Generators