From 6e97730859296c0bc349b73049e99c5725b3a7de Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 13 Jul 2024 12:22:33 +0200 Subject: [PATCH] Dev (#28) + Added `ValidationHelper` + `RequiredIfAttribute` can now be added multiple times to an element --- .gitignore | 1 + .../ObjectValidation CountryValidator.csproj | 15 + .../CountryValidator.html | 342 ++++++++++++++++++ .../LICENSE | 21 ++ ...t.Extensions.Diagnostics.Abstractions.html | 64 ++++ .../Microsoft.Extensions.Options.html | 64 ++++ .../Microsoft.Extensions.Primitives.html | 64 ++++ .../README.md | 31 ++ .../System.ComponentModel.Annotations.html | 64 ++++ .../ObjectValidation Docs.csproj | 14 - .../ObjectValidation Tests.csproj | 9 +- src/ObjectValidation.sln | 4 - .../ObjectValidation licenses/LICENSE | 21 ++ ...t.Extensions.Diagnostics.Abstractions.html | 64 ++++ .../Microsoft.Extensions.Options.html | 64 ++++ .../Microsoft.Extensions.Primitives.html | 64 ++++ .../ObjectValidation licenses/README.md | 28 ++ src/ObjectValidation/ObjectValidation.csproj | 18 +- src/ObjectValidation/RequiredIfAttribute.cs | 1 + src/ObjectValidation/ValidationHelper.cs | 24 ++ 20 files changed, 954 insertions(+), 23 deletions(-) create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/CountryValidator.html create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Options.html create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Primitives.html create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md create mode 100644 src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html delete mode 100644 src/ObjectValidation Docs/ObjectValidation Docs.csproj create mode 100644 src/ObjectValidation/ObjectValidation licenses/LICENSE create mode 100644 src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html create mode 100644 src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Options.html create mode 100644 src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Primitives.html create mode 100644 src/ObjectValidation/ObjectValidation licenses/README.md create mode 100644 src/ObjectValidation/ValidationHelper.cs diff --git a/.gitignore b/.gitignore index 8449bca..bcee129 100644 --- a/.gitignore +++ b/.gitignore @@ -404,3 +404,4 @@ nuget-publish.bat # Others **/log.txt src/ObjectValidation Docs/log.txt +**/TestResults/**/* diff --git a/src/ObjectValidation CountryValidator/ObjectValidation CountryValidator.csproj b/src/ObjectValidation CountryValidator/ObjectValidation CountryValidator.csproj index c57b10e..e28aeec 100644 --- a/src/ObjectValidation CountryValidator/ObjectValidation CountryValidator.csproj +++ b/src/ObjectValidation CountryValidator/ObjectValidation CountryValidator.csproj @@ -38,6 +38,21 @@ \ Always + + Always + + + Always + + + Always + + + Always + + + Always + True \ diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/CountryValidator.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/CountryValidator.html new file mode 100644 index 0000000..32938d9 --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/CountryValidator.html @@ -0,0 +1,342 @@ + + + + + + + 'Apache-2.0' reference + + +
+ + + +

Apache License 2.0

+ +

SPDX identifier

+
Apache-2.0
+ +

License text

+ +
+

Apache License +
+ +Version 2.0, January 2004 +
+ +http://www.apache.org/licenses/ +

+ +
+
+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+ +
+ +
    + +
  • + 1. + Definitions. + +
      + +
    • +

      "License" shall mean the terms and conditions for use, reproduction, and distribution + as defined by Sections 1 through 9 of this document.

      + +
    • + +
    • +

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner + that is granting the License.

      + +
    • + +
    • +

      "Legal Entity" shall mean the union of the acting entity and all other entities that + control, are controlled by, or are under common control with that entity. For the purposes of + this definition, "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or otherwise, or (ii) ownership of + fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such + entity.

      + +
    • + +
    • +

      "You" (or "Your") shall mean an individual or Legal Entity exercising + permissions granted by this License.

      + +
    • + +
    • +

      "Source" form shall mean the preferred form for making modifications, including but not + limited to software source code, documentation source, and configuration files.

      + +
    • + +
    • +

      "Object" form shall mean any form resulting from mechanical transformation or + translation of a Source form, including but not limited to compiled object code, generated + documentation, and conversions to other media types.

      + +
    • + +
    • +

      "Work" shall mean the work of authorship, whether in Source or Object form, made + available under the License, as indicated by a copyright notice that is included in or + attached to the work (an example is provided in the Appendix below).

      + +
    • + +
    • +

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based + on (or derived from) the Work and for which the editorial revisions, annotations, + elaborations, or other modifications represent, as a whole, an original work of authorship. + For the purposes of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative + Works thereof.

      + +
    • + +
    • +

      "Contribution" shall mean any work of authorship, including the original version of the + Work and any modifications or additions to that Work or Derivative Works thereof, that is + intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an + individual or Legal Entity authorized to submit on behalf of the copyright owner. For the + purposes of this definition, "submitted" means any form of electronic, verbal, or + written communication sent to the Licensor or its representatives, including but not limited + to communication on electronic mailing lists, source code control systems, and issue tracking + systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and + improving the Work, but excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution."

      + +
    • + +
    • +

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom + a Contribution has been received by Licensor and subsequently incorporated within the + Work.

      + +
    • + +
    +
  • + +
  • + 2. + Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor + hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or + Object form. +
  • + +
  • + 3. + Grant of Patent License. Subject to the terms and conditions of this License, each Contributor + hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable (except as stated in this section) patent license to make, have made, use, offer + to sell, sell, import, and otherwise transfer the Work, where such license applies only to + those patent claims licensable by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) with the Work to which such + Contribution(s) was submitted. If You institute patent litigation against any entity + (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a + Contribution incorporated within the Work constitutes direct or contributory patent + infringement, then any patent licenses granted to You under this License for that Work shall + terminate as of the date such litigation is filed. +
  • + +
  • + 4. + Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof + in any medium, with or without modifications, and in Source or Object form, provided that You + meet the following conditions: + +
      + +
    • + (a) + You must give any other recipients of the Work or Derivative Works a copy of this License; and +
    • + +
    • + (b) + You must cause any modified files to carry prominent notices stating that You changed the files; and +
    • + +
    • + (c) + You must retain, in the Source form of any Derivative Works that You distribute, all + copyright, patent, trademark, and attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of the Derivative Works; and +
    • + +
    • + (d) + If the Work includes a "NOTICE" text file as part of its distribution, then any + Derivative Works that You distribute must include a readable copy of the attribution + notices contained within such NOTICE file, excluding those notices that do not pertain to + any part of the Derivative Works, in at least one of the following places: within a NOTICE + text file distributed as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, within a display generated + by the Derivative Works, if and wherever such third-party notices normally appear. The + contents of the NOTICE file are for informational purposes only and do not modify the + License. You may add Your own attribution notices within Derivative Works that You + distribute, alongside or as an addendum to the NOTICE text from the Work, provided that + such additional attribution notices cannot be construed as modifying the License. +

      You may add Your own copyright statement to Your modifications and may provide additional or + different license terms and conditions for use, reproduction, or distribution of Your + modifications, or for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with the conditions stated + in this License.

      + +
    • + +
    +
  • + +
  • + 5. + Submission of Contributions. Unless You explicitly state otherwise, any Contribution + intentionally submitted for inclusion in the Work by You to the Licensor shall be under the + terms and conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate + license agreement you may have executed with Licensor regarding such Contributions. +
  • + +
  • + 6. + Trademarks. This License does not grant permission to use the trade names, trademarks, service + marks, or product names of the Licensor, except as required for reasonable and customary use + in describing the origin of the Work and reproducing the content of the NOTICE file. +
  • + +
  • + 7. + Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor + provides the Work (and each Contributor provides its Contributions) on an "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, + without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, + or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any risks associated with Your + exercise of permissions under this License. +
  • + +
  • + 8. + Limitation of Liability. In no event and under no legal theory, whether in tort (including + negligence), contract, or otherwise, unless required by applicable law (such as deliberate and + grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for + damages, including any direct, indirect, special, incidental, or consequential damages of any + character arising as a result of this License or out of the use or inability to use the Work + (including but not limited to damages for loss of goodwill, work stoppage, computer failure or + malfunction, or any and all other commercial damages or losses), even if such Contributor has + been advised of the possibility of such damages. +
  • + +
  • + 9. + Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works + thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, + indemnity, or other liability obligations and/or rights consistent with this License. However, + in accepting such obligations, You may act only on Your own behalf and on Your sole + responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability incurred by, or claims asserted + against, such Contributor by reason of your accepting any such warranty or additional + liability. +
  • + +
+ +
+

END OF TERMS AND CONDITIONS

+ +

APPENDIX: How to apply the Apache License to your work.

+ +

To apply the Apache License to your work, attach the following boilerplate notice, with the fields + enclosed by brackets "[]" replaced with your own identifying information. (Don't + include the brackets!) The text should be enclosed in the appropriate comment syntax for the file + format. We also recommend that a file or class name and description of purpose be included on the same + "printed page" as the copyright notice for easier identification within third-party + archives.

+ +

Copyright [yyyy] [name of copyright owner]

+ +

Licensed under the Apache License, Version 2.0 (the "License"); +
+ +you may not use this file except in compliance with the License. +
+ +You may obtain a copy of the License at +

+ +

http://www.apache.org/licenses/LICENSE-2.0

+ +

Unless required by applicable law or agreed to in writing, software +
+ +distributed under the License is distributed on an "AS IS" BASIS, +
+ +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +
+ +See the License for the specific language governing permissions and +
+ +limitations under the License. +

+ +
+ + +

Standard License Header

+ +

Copyright [yyyy] [name of copyright owner]

+ +

Licensed under the Apache License, Version 2.0 (the "License"); +
+ +you may not use this file except in compliance with the License. +
+ +You may obtain a copy of the License at +

+ +

http://www.apache.org/licenses/LICENSE-2.0

+ +

Unless required by applicable law or agreed to in writing, software +
+ +distributed under the License is distributed on an "AS IS" BASIS, +
+ +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +
+ +See the License for the specific language governing permissions and +
+ +limitations under the License. +

+ + + +

Notes

+

This license was released January 2004

+ +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE new file mode 100644 index 0000000..62d5ca8 --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Andreas Zimmermann, wan24.de + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Options.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Options.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Options.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Primitives.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Primitives.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Primitives.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md new file mode 100644 index 0000000..891840e --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md @@ -0,0 +1,31 @@ +# Licenses + +This document describes used 3rd party software and their licenses. The +license texts can be found in the text files named after the library. The +exact used library versions can be found in the project files, which are +published in the +[GitHub repository](https://github.com/nd1012/ObjectValidation). + +Linked project and license URIs come from the referenced NuGet package meta +data. None of these libraries have been modified and are being used in their +original published form. + +## ObjectValidation-CountryValidator referenced libraries + +The published `ObjectValidation-CountryValidator` library uses the following +referenced open source libraries: + +| Library | License | +| ------- | ------- | +| [`ObjectValidation`](https://github.com/nd1012/ObjectValidation) | [MIT](https://github.com/nd1012/ObjectValidation/blob/main/LICENSE) | +| [`CountryValidator`](https://github.com/anghelvalentin/CountryValidator) | [Apache 2.0](https://licenses.nuget.org/Apache-2.0) | + +These referenced libraries have transistive references to these open source +libraries: + +| Library | License | +| ------- | ------- | +| [`Microsoft.Extensions.DependencyInjection.Abstractions`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | +| [`Microsoft.Extensions.Options`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | +| [`Microsoft.Extensions.Primitives`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | +| [`System.ComponentModel.Annotations`](https://github.com/dotnet/corefx) | [MIT](https://licenses.nuget.org/MIT) | diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation Docs/ObjectValidation Docs.csproj b/src/ObjectValidation Docs/ObjectValidation Docs.csproj deleted file mode 100644 index 2c9d59c..0000000 --- a/src/ObjectValidation Docs/ObjectValidation Docs.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net8.0 - ObjectValidation_Docs - enable - enable - - - - - - - diff --git a/src/ObjectValidation Tests/ObjectValidation Tests.csproj b/src/ObjectValidation Tests/ObjectValidation Tests.csproj index 0806c6d..a1f193e 100644 --- a/src/ObjectValidation Tests/ObjectValidation Tests.csproj +++ b/src/ObjectValidation Tests/ObjectValidation Tests.csproj @@ -8,13 +8,14 @@ false true + True - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/ObjectValidation.sln b/src/ObjectValidation.sln index 387dc78..5d431a9 100644 --- a/src/ObjectValidation.sln +++ b/src/ObjectValidation.sln @@ -9,8 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation Tests", "O EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation CountryValidator", "ObjectValidation CountryValidator\ObjectValidation CountryValidator.csproj", "{BBB4D066-F727-4052-828A-5BA6C6A96491}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation Docs", "ObjectValidation Docs\ObjectValidation Docs.csproj", "{A6B522DC-57EA-4B8E-BDE7-37016E7AA672}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -29,8 +27,6 @@ Global {BBB4D066-F727-4052-828A-5BA6C6A96491}.Debug|Any CPU.Build.0 = Debug|Any CPU {BBB4D066-F727-4052-828A-5BA6C6A96491}.Release|Any CPU.ActiveCfg = Release|Any CPU {BBB4D066-F727-4052-828A-5BA6C6A96491}.Release|Any CPU.Build.0 = Release|Any CPU - {A6B522DC-57EA-4B8E-BDE7-37016E7AA672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6B522DC-57EA-4B8E-BDE7-37016E7AA672}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ObjectValidation/ObjectValidation licenses/LICENSE b/src/ObjectValidation/ObjectValidation licenses/LICENSE new file mode 100644 index 0000000..62d5ca8 --- /dev/null +++ b/src/ObjectValidation/ObjectValidation licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Andreas Zimmermann, wan24.de + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Options.html b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Options.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Options.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Primitives.html b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Primitives.html new file mode 100644 index 0000000..ce9da3e --- /dev/null +++ b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Primitives.html @@ -0,0 +1,64 @@ + + + + + + + 'MIT' reference + + +
+ + + +

MIT License

+ +

SPDX identifier

+
MIT
+ +

License text

+ +
+

MIT License

+ +
+
+

Copyright (c) <year> <copyright holders> +

+ +
+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions:

+ +

The above copyright notice and this permission notice + (including the next paragraph) + shall be included in all copies or substantial + portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ + + + + + +

SPDX web page

+ + +

Notice

+

This license content is provided by the SPDX project. For more information about licenses.nuget.org, see our documentation. + +

Data pulled from spdx/license-list-data on February 9, 2023.

+
+ + diff --git a/src/ObjectValidation/ObjectValidation licenses/README.md b/src/ObjectValidation/ObjectValidation licenses/README.md new file mode 100644 index 0000000..ed785ba --- /dev/null +++ b/src/ObjectValidation/ObjectValidation licenses/README.md @@ -0,0 +1,28 @@ +# Licenses + +This document describes used 3rd party software and their licenses. The +license texts can be found in the text files named after the library. The +exact used library versions can be found in the project files, which are +published in the +[GitHub repository](https://github.com/nd1012/ObjectValidation). + +Linked project and license URIs come from the referenced NuGet package meta +data. None of these libraries have been modified and are being used in their +original published form. + +## ObjectValidation referenced libraries + +The published `ObjectValidation` library uses the following referenced open +source libraries: + +| Library | License | +| ------- | ------- | +| [`Microsoft.Extensions.Options`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | + +These referenced libraries have transistive references to these open source +libraries: + +| Library | License | +| ------- | ------- | +| [`Microsoft.Extensions.DependencyInjection.Abstractions`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | +| [`Microsoft.Extensions.Primitives`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) | diff --git a/src/ObjectValidation/ObjectValidation.csproj b/src/ObjectValidation/ObjectValidation.csproj index 28faa28..af765d0 100644 --- a/src/ObjectValidation/ObjectValidation.csproj +++ b/src/ObjectValidation/ObjectValidation.csproj @@ -22,10 +22,11 @@ LICENSE True README.md - 2.5.0 + 2.6.0 embedded true Debug;Release;Trunk + True @@ -38,6 +39,21 @@ True \
+ + Always + + + Always + + + Always + + + Always + + + Always + True \ diff --git a/src/ObjectValidation/RequiredIfAttribute.cs b/src/ObjectValidation/RequiredIfAttribute.cs index bef90a8..e691737 100644 --- a/src/ObjectValidation/RequiredIfAttribute.cs +++ b/src/ObjectValidation/RequiredIfAttribute.cs @@ -12,6 +12,7 @@ namespace wan24.ObjectValidation /// Checked property name /// Values (one of the value is required in order to match this condition; if not given, the value is required if the checked property has a non- /// value) + [AttributeUsage(AttributeTargets.All, AllowMultiple = true)] public class RequiredIfAttribute(string propertyName, params object?[] values) : RequiredAttribute() { /// diff --git a/src/ObjectValidation/ValidationHelper.cs b/src/ObjectValidation/ValidationHelper.cs new file mode 100644 index 0000000..a699ef6 --- /dev/null +++ b/src/ObjectValidation/ValidationHelper.cs @@ -0,0 +1,24 @@ +using System.ComponentModel.DataAnnotations; + +namespace wan24.ObjectValidation +{ + /// + /// Object validation helper + /// + public static class ValidationHelper + { + /// + /// Create a validation result + /// + /// Error message + /// Context + /// + public static ValidationResult CreateValidationResult(in string message, in ValidationContext validationContext) + => new( + validationContext.MemberName is null + ? message + : $"{validationContext.MemberName}: {message}", + validationContext.MemberName is null ? null : new string[] { validationContext.MemberName } + ); + } +}