Pointless Waymarks Tools

Check-in [b2ff44d50d]
Login

Check-in [b2ff44d50d]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Package Updates, Add new No Indicators String Data Entry Context
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk | main
Files: files | file ages | folders
SHA3-256: b2ff44d50df1f2672613006b352a22d36bdb1616b42bd4cbe11517e02627c0f0
User & Date: charles@cmiles.info 2024-07-01 16:21:25.000
Context
2024-07-02
14:37
Package Updates check-in: 622ad15946 user: charles@cmiles.info tags: main, trunk
2024-07-01
16:21
Package Updates, Add new No Indicators String Data Entry Context check-in: b2ff44d50d user: charles@cmiles.info tags: main, trunk
2024-06-30
16:57
CommonTools: Update Software Used List check-in: dbe42ce2ac user: charles@cmiles.info tags: main, trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to PointlessWaymarks.CommonTools/HelpMarkdown.cs.
131
132
133
134
135
136
137




138
139
140
141
142
   - [serilog/serilog-formatting-compact: Compact JSON event format for Serilog](https://github.com/serilog/serilog-formatting-compact). Apache-2.0 License.
   - [serilog/serilog-sinks-console: Write log events to System.Console as text or JSON, with ANSI theme support](https://github.com/serilog/serilog-sinks-console). Apache-2.0 License.
   - [serilog-contrib/Serilog.Sinks.DelegatingText: A Serilog sink to emit formatted log events to a delegate.](https://github.com/serilog-contrib/Serilog.Sinks.DelegatingText). Apache License, Version 2.0.
 - [HamedFathi/SimMetricsCore: A text similarity metric library, e.g. from edit distance's (Levenshtein, Gotoh, Jaro, etc) to other metrics, (e.g Soundex, Chapman). This library is compiled based on the .NET standard with a lot of useful extension methods.](https://github.com/HamedFathi/SimMetricsCore)
 - [replaysMike/TypeSupport: A CSharp library that makes it easier to work with Types dynamically.](https://github.com/replaysMike/TypeSupport) - When working with generic and dynamic types I appreciate some of the extension methods provided by this library to handle details like .IsNumericType that often seem to descend into endless edge cases when you try to write it yourself. GPL-3.0 License.
 - [omuleanu/ValueInjecter: convention based mapper](https://github.com/omuleanu/ValueInjecter) - Quick mapping between objects without any setup needed. MIT License.
 - [Tyrrrz/CliWrap: Library for running command-line processes](https://github.com/Tyrrrz/CliWrap) - Improved options for running command line processes from .NET. MIT License.





**Testing:**
- [GitHub - adobe/S3Mock: A simple mock implementation of the AWS S3 API startable as Docker image, TestContainer, JUnit 4 rule, JUnit Jupiter extension or TestNG listener](https://github.com/adobe/S3Mock#configuration) - One docker command to have a mock S3 server running and minimal configuration needed for simple cases!!! Apache License, Version 2.0.
""";
}







>
>
>
>





131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
   - [serilog/serilog-formatting-compact: Compact JSON event format for Serilog](https://github.com/serilog/serilog-formatting-compact). Apache-2.0 License.
   - [serilog/serilog-sinks-console: Write log events to System.Console as text or JSON, with ANSI theme support](https://github.com/serilog/serilog-sinks-console). Apache-2.0 License.
   - [serilog-contrib/Serilog.Sinks.DelegatingText: A Serilog sink to emit formatted log events to a delegate.](https://github.com/serilog-contrib/Serilog.Sinks.DelegatingText). Apache License, Version 2.0.
 - [HamedFathi/SimMetricsCore: A text similarity metric library, e.g. from edit distance's (Levenshtein, Gotoh, Jaro, etc) to other metrics, (e.g Soundex, Chapman). This library is compiled based on the .NET standard with a lot of useful extension methods.](https://github.com/HamedFathi/SimMetricsCore)
 - [replaysMike/TypeSupport: A CSharp library that makes it easier to work with Types dynamically.](https://github.com/replaysMike/TypeSupport) - When working with generic and dynamic types I appreciate some of the extension methods provided by this library to handle details like .IsNumericType that often seem to descend into endless edge cases when you try to write it yourself. GPL-3.0 License.
 - [omuleanu/ValueInjecter: convention based mapper](https://github.com/omuleanu/ValueInjecter) - Quick mapping between objects without any setup needed. MIT License.
 - [Tyrrrz/CliWrap: Library for running command-line processes](https://github.com/Tyrrrz/CliWrap) - Improved options for running command line processes from .NET. MIT License.
 - [HangfireIO/Cronos: A fully-featured .NET library for working with Cron expressions. Built with time zones in mind and intuitively handles daylight saving time transitions](https://github.com/HangfireIO/Cronos). MIT License.
 - [bradymholt/cron-expression-descriptor: A .NET library that converts cron expressions into human readable descriptions.](https://github.com/bradymholt/cron-expression-descriptor). MIT License.
 - [HangfireIO/Cronos: A fully-featured .NET library for working with Cron expressions. Built with time zones in mind and intuitively handles daylight saving time transitions](https://github.com/HangfireIO/Cronos). MIT License.
 - [bradymholt/cron-expression-descriptor: A .NET library that converts cron expressions into human readable descriptions.](https://github.com/bradymholt/cron-expression-descriptor). MIT License.

**Testing:**
- [GitHub - adobe/S3Mock: A simple mock implementation of the AWS S3 API startable as Docker image, TestContainer, JUnit 4 rule, JUnit Jupiter extension or TestNG listener](https://github.com/adobe/S3Mock#configuration) - One docker command to have a mock S3 server running and minimal configuration needed for simple cases!!! Apache License, Version 2.0.
""";
}
Changes to PointlessWaymarks.CommonTools/PointlessWaymarks.CommonTools.csproj.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    <EmbeddedResource Include="CommonToolsResources\favicon.ico" />
    <EmbeddedResource Include="CommonToolsResources\pure-min.css" />
    <EmbeddedResource Include="CommonToolsResources\sakura.css" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="AnyClone" Version="1.1.6" />
    <PackageReference Include="AWSSDK.S3" Version="3.7.309.7" />
    <PackageReference Include="CliWrap" Version="3.6.6" />
    <PackageReference Include="ClosedXML" Version="0.102.2" />
    <PackageReference Include="Devlooped.CredentialManager" Version="2.5.0.1" />
    <PackageReference Include="Flurl.Http" Version="4.0.2" />
    <PackageReference Include="GitInfo" Version="3.3.5">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Markdig" Version="0.37.0" />
    <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.6" />
    <PackageReference Include="ObjectDumper.NET" Version="4.2.7" />
    <PackageReference Include="OneOf" Version="3.0.271" />
    <PackageReference Include="OneOf.SourceGenerator" Version="3.0.271" />
    <PackageReference Include="Polly" Version="8.4.0" />
    <PackageReference Include="Serilog" Version="4.0.0" />
    <PackageReference Include="Serilog.Enrichers.Environment" Version="3.0.1" />
    <PackageReference Include="Serilog.Enrichers.GlobalLogContext" Version="3.0.0" />
    <PackageReference Include="Serilog.Enrichers.Process" Version="3.0.0" />
    <PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
    <PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
    <PackageReference Include="Serilog.Formatting.Compact" Version="3.0.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
    <PackageReference Include="Serilog.Sinks.DelegatingText" Version="1.0.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
    <PackageReference Include="SimMetricsCore" Version="2.1.0" />
    <PackageReference Include="System.Linq.Async" Version="6.0.1" />
    <PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.1" />
    <PackageReference Include="TinyIpc" Version="4.3.1" />
  </ItemGroup>

</Project>







|













|













|




21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    <EmbeddedResource Include="CommonToolsResources\favicon.ico" />
    <EmbeddedResource Include="CommonToolsResources\pure-min.css" />
    <EmbeddedResource Include="CommonToolsResources\sakura.css" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="AnyClone" Version="1.1.6" />
    <PackageReference Include="AWSSDK.S3" Version="3.7.309.11" />
    <PackageReference Include="CliWrap" Version="3.6.6" />
    <PackageReference Include="ClosedXML" Version="0.102.2" />
    <PackageReference Include="Devlooped.CredentialManager" Version="2.5.0.1" />
    <PackageReference Include="Flurl.Http" Version="4.0.2" />
    <PackageReference Include="GitInfo" Version="3.3.5">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Markdig" Version="0.37.0" />
    <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.6" />
    <PackageReference Include="ObjectDumper.NET" Version="4.2.7" />
    <PackageReference Include="OneOf" Version="3.0.271" />
    <PackageReference Include="OneOf.SourceGenerator" Version="3.0.271" />
    <PackageReference Include="Polly" Version="8.4.1" />
    <PackageReference Include="Serilog" Version="4.0.0" />
    <PackageReference Include="Serilog.Enrichers.Environment" Version="3.0.1" />
    <PackageReference Include="Serilog.Enrichers.GlobalLogContext" Version="3.0.0" />
    <PackageReference Include="Serilog.Enrichers.Process" Version="3.0.0" />
    <PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
    <PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
    <PackageReference Include="Serilog.Formatting.Compact" Version="3.0.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
    <PackageReference Include="Serilog.Sinks.DelegatingText" Version="1.0.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
    <PackageReference Include="SimMetricsCore" Version="2.1.0" />
    <PackageReference Include="System.Linq.Async" Version="6.0.1" />
    <PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.2" />
    <PackageReference Include="TinyIpc" Version="4.3.1" />
  </ItemGroup>

</Project>
Changes to PointlessWaymarks.LlamaAspects/PointlessWaymarks.LlamaAspects.csproj.
1
2
3
4
5
6
7
8
9
10
11
12
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Platforms>x64</Platforms>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
    <PackageReference Include="Metalama.Framework" Version="2024.1.22" />
  </ItemGroup>
</Project>









|


1
2
3
4
5
6
7
8
9
10
11
12
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Platforms>x64</Platforms>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
    <PackageReference Include="Metalama.Framework" Version="2024.1.23" />
  </ItemGroup>
</Project>
Changes to PointlessWaymarks.WpfCommon/StringDataEntry/StringDataEntryContext.cs.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24


25
26
27
28
29
30
31
{
    private StringDataEntryContext()
    {
        PropertyChanged += OnPropertyChanged;
    }

    public int BindingDelay { get; set; } = 10;
    public bool HasChanges { get; set; }
    public bool HasValidationIssues { get; set; }
    public string HelpText { get; set; } = string.Empty;
    public string ReferenceValue { get; set; } = string.Empty;
    public string Title { get; set; } = string.Empty;
    public string UserValue { get; set; } = string.Empty;
    public List<Func<string?, Task<IsValid>>> ValidationFunctions { get; set; } = [];
    public string ValidationMessage { get; set; } = string.Empty;



    public async Task CheckForChangesAndValidationIssues()
    {
        HasChanges = UserValue.TrimNullToEmpty() != ReferenceValue.TrimNullToEmpty();

        if (ValidationFunctions.Any())
            foreach (var loopValidations in ValidationFunctions)







<
<






>
>







10
11
12
13
14
15
16


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
    private StringDataEntryContext()
    {
        PropertyChanged += OnPropertyChanged;
    }

    public int BindingDelay { get; set; } = 10;


    public string HelpText { get; set; } = string.Empty;
    public string ReferenceValue { get; set; } = string.Empty;
    public string Title { get; set; } = string.Empty;
    public string UserValue { get; set; } = string.Empty;
    public List<Func<string?, Task<IsValid>>> ValidationFunctions { get; set; } = [];
    public string ValidationMessage { get; set; } = string.Empty;
    public bool HasChanges { get; set; }
    public bool HasValidationIssues { get; set; }

    public async Task CheckForChangesAndValidationIssues()
    {
        HasChanges = UserValue.TrimNullToEmpty() != ReferenceValue.TrimNullToEmpty();

        if (ValidationFunctions.Any())
            foreach (var loopValidations in ValidationFunctions)
Added PointlessWaymarks.WpfCommon/StringDataEntry/StringDataEntryNoIndicatorsContext.cs.


































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using PointlessWaymarks.CommonTools;
using PointlessWaymarks.LlamaAspects;
using PointlessWaymarks.WpfCommon.ChangesAndValidation;

namespace PointlessWaymarks.WpfCommon.StringDataEntry;

[NotifyPropertyChanged]
public partial class StringDataEntryNoIndicatorsContext : IHasChanges, IHasValidationIssues
{
    private StringDataEntryNoIndicatorsContext()
    {
    }

    public int BindingDelay { get; set; } = 10;
    public string HelpText { get; set; } = string.Empty;
    public string ReferenceValue { get; set; } = string.Empty;
    public string Title { get; set; } = string.Empty;
    public string UserValue { get; set; } = string.Empty;
    public List<Func<string?, Task<IsValid>>> ValidationFunctions { get; set; } = [];
    public string ValidationMessage { get; set; } = string.Empty;
    public bool HasChanges { get; set; }
    public bool HasValidationIssues { get; set; }

    public Task CheckForChangesAndValidationIssues()
    {
        return Task.CompletedTask;
    }

    public static StringDataEntryNoIndicatorsContext CreateInstance()
    {
        return new StringDataEntryNoIndicatorsContext();
    }
}