{"id":14965139,"url":"https://github.com/karnah/reactivevalidation","last_synced_at":"2025-10-25T11:31:00.162Z","repository":{"id":41049263,"uuid":"131042689","full_name":"Karnah/ReactiveValidation","owner":"Karnah","description":"A small validation library for WPF and Avalonia which uses a fluent interface and allows display messages near controls in GUI with MVVM","archived":false,"fork":false,"pushed_at":"2024-01-02T17:43:32.000Z","size":491,"stargazers_count":72,"open_issues_count":0,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-30T01:02:41.412Z","etag":null,"topics":["avalonia","validation","wpf","xaml"],"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/Karnah.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}},"created_at":"2018-04-25T17:41:34.000Z","updated_at":"2024-09-29T17:33:42.000Z","dependencies_parsed_at":"2024-01-13T12:22:07.419Z","dependency_job_id":"5bccad32-b799-41f5-bbac-5b4bb8bf52ba","html_url":"https://github.com/Karnah/ReactiveValidation","commit_stats":{"total_commits":68,"total_committers":4,"mean_commits":17.0,"dds":"0.044117647058823484","last_synced_commit":"5f63c43ac30ae5fa24b0c4999f370e0c5b8fc981"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karnah%2FReactiveValidation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karnah%2FReactiveValidation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karnah%2FReactiveValidation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karnah%2FReactiveValidation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Karnah","download_url":"https://codeload.github.com/Karnah/ReactiveValidation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238128501,"owners_count":19421048,"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":["avalonia","validation","wpf","xaml"],"created_at":"2024-09-24T13:34:16.681Z","updated_at":"2025-10-25T11:30:54.826Z","avatar_url":"https://github.com/Karnah.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReactiveValidation\nA small validation library for WPF and Avalonia which uses a fluent interface and allows display messages near controls in GUI with MVVM.\nInspired [FluentValidation](https://github.com/JeremySkinner/FluentValidation) by Jeremy Skinner.\n\n## Sample\n```csharp\npublic class CarViewModel : ValidatableObject\n{\n    public CarViewModel()\n    {\n        Validator = GetValidator();\n    }\n\n    private IObjectValidator GetValidator()\n    {\n        var builder = new ValidationBuilder\u003cCarViewModel\u003e();\n\n        builder.RuleFor(vm =\u003e vm.Make).NotEmpty();\n        builder.RuleFor(vm =\u003e vm.Model).NotEmpty().WithMessage(\"Please specify a car model\");\n        builder.RuleFor(vm =\u003e vm.Mileage).GreaterThan(0).When(model =\u003e model.HasMileage);\n        builder.RuleFor(vm =\u003e vm.Vin).Must(BeAValidVin).WithMessage(\"Please specify a valid VIN\");\n        builder.RuleFor(vm =\u003e vm.Description).Length(10, 100);\n\n        return builder.Build(this);\n    }\n\n    private bool BeAValidVin(string vin)\n    {\n        // Custom vin validating logic goes here.\n    }\n\n    // Properties with realization INotifyPropertyChanged goes here.\n}\n```\n\n## WPF\n* [Quick start](https://github.com/Karnah/ReactiveValidation/wiki/WPF.-Quick-start)\n* [Project with samples](https://github.com/Karnah/ReactiveValidation/tree/master/src/ReactiveValidation.Wpf.Samples)\n\n## Avalonia\n* [Quick start](https://github.com/Karnah/ReactiveValidation/wiki/Avalonia.-Quick-start)\n* [Project with samples](https://github.com/Karnah/ReactiveValidation/tree/master/src/ReactiveValidation.Avalonia.Samples)\n\n## Documentation\nAbout all features you can read in the [documentation](https://github.com/Karnah/ReactiveValidation/wiki).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarnah%2Freactivevalidation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarnah%2Freactivevalidation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarnah%2Freactivevalidation/lists"}