{"id":20974870,"url":"https://github.com/usausa/automapperfragmentconfig","last_synced_at":"2025-05-14T13:32:09.729Z","repository":{"id":231820844,"uuid":"782396057","full_name":"usausa/AutoMapperFragmentConfig","owner":"usausa","description":"Code generator for AutoMapper fragment config.","archived":false,"fork":false,"pushed_at":"2025-05-09T08:09:36.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-09T09:24:33.728Z","etag":null,"topics":["automapper","codegenerator","mapper","source-generator","source-generators","sourcegenerator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usausa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-05T08:08:56.000Z","updated_at":"2025-05-09T08:09:40.000Z","dependencies_parsed_at":"2024-04-06T06:22:19.762Z","dependency_job_id":"cd80c289-39c6-4855-9af0-08fb5a4e9e68","html_url":"https://github.com/usausa/AutoMapperFragmentConfig","commit_stats":null,"previous_names":["usausa/automapperfragmentconfig"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2FAutoMapperFragmentConfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2FAutoMapperFragmentConfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2FAutoMapperFragmentConfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2FAutoMapperFragmentConfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usausa","download_url":"https://codeload.github.com/usausa/AutoMapperFragmentConfig/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254150566,"owners_count":22022980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automapper","codegenerator","mapper","source-generator","source-generators","sourcegenerator"],"created_at":"2024-11-19T04:35:01.185Z","updated_at":"2025-05-14T13:32:04.705Z","avatar_url":"https://github.com/usausa.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoMapperFragmentConfig\n\n[![NuGet](https://img.shields.io/nuget/v/AutoMapperFragmentConfig.svg)](https://www.nuget.org/packages/AutoMapperFragmentConfig)\n\n## What is this?\n\nConfigure AutoMapper locally.\n\n## Usage\n\n```xml\n  \u003cItemGroup\u003e\n    \u003cPackageReference Include=\"AutoMapperFragmentConfig\" Version=\"0.3.0\" /\u003e\n    \u003cPackageReference Include=\"AutoMapperFragmentConfig.SourceGenerator\" Version=\"0.3.0\"\u003e\n      \u003cPrivateAssets\u003eall\u003c/PrivateAssets\u003e\n      \u003cIncludeAssets\u003eruntime; build; native; contentfiles; analyzers; buildtransitive\u003c/IncludeAssets\u003e\n    \u003c/PackageReference\u003e\n  \u003c/ItemGroup\u003e\n```\n\n## ASP.NET Core Sample\n\n```csharp\n[ApiController]\n[Route(\"[controller]/[action]\")]\npublic class ExampleController : ControllerBase\n{\n    private readonly IMapper mapper;\n\n    // AutoMapper settings used only in the Controller can be configured locally without creating Profile class.\n    [MapConfig]\n    public static void ConfigureMapping(IProfileExpression config, IServiceProvider provider)\n    {\n        var calc = provider.GetRequiredService\u003cICalc\u003e();\n        config.CreateMap\u003cRequest, Response\u003e()\n            .ForMember(d =\u003e d.Value, o =\u003e o.MapFrom(s =\u003e calc.Calc(s.Value)));\n    }\n\n    public ExampleController(IMapper mapper)\n    {\n        this.mapper = mapper;\n    }\n\n    [HttpPost]\n    public IActionResult Execute([FromBody] Request request)\n    {\n        return Ok(mapper.Map\u003cRequest, Response\u003e(request));\n    }\n}\n```\n\n```csharp\npublic static partial class AutoMapperExtensions\n{\n    // Extension method generator for fragment config.\n    [MapConfigExtension]\n    public static partial void AddFragmentProfile(this IMapperConfigurationExpression expression, IServiceProvider provider);\n}\n```\n\n```csharp\nbuilder.Services.AddSingleton\u003cICalc, IncrementCalc\u003e();\n\n// Add AutoMapper with fragment config.\nbuilder.Services.AddSingleton\u003cIMapper\u003e(static p =\u003e new Mapper(new MapperConfiguration(c =\u003e c.AddFragmentProfile(p)), p.GetService));\n```\n\n```csharp\npublic class Request\n{\n    public int Value { get; set; }\n}\n\npublic class Response\n{\n    public string Value { get; set; } = default!;\n}\n\npublic interface ICalc\n{\n    int Calc(int value);\n}\n\npublic class IncrementCalc : ICalc\n{\n    public int Calc(int value) =\u003e value + 1;\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusausa%2Fautomapperfragmentconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusausa%2Fautomapperfragmentconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusausa%2Fautomapperfragmentconfig/lists"}