Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

conversion in progress #38

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Default severity for all analyzer diagnostics
dotnet_analyzer_diagnostic.severity = error
csharp_using_directive_placement=inside_namespace:error
csharp_using_directive_placement = inside_namespace:error

# IDE0032: Use auto property
dotnet_diagnostic.IDE0032.severity = none
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@ Words.Core/dist
Words.Console/normalized_to_originals.csv
Words.Console/word_permutations.csv
Words.Console/words.json
internal-nlog-AspNetCore.txt
6 changes: 5 additions & 1 deletion Words.Console/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@ private static void Run(string connectionString, string wordsFilename)
foreach (WordFinder wordFinder in new[] { ternary, succinct }.Where(x => x != null))
{
stopwatch.Restart();
List<Match> matches = wordFinder.Matches(input, 2);
List<Match> matches = wordFinder.Matches(
input,
2,
x => x,
x => new[] { x });
stopwatch.Stop();
if (matches.Count > 0)
{
Expand Down
Empty file.
190 changes: 190 additions & 0 deletions Words.Web.Core/App_Data/words.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
[
{
"Number": 1,
"Data": {
"EncodingBytes": [
"u7tbbutWrbta6qXWqtW1bburqqmqlVtVq3bV21VlVVVVWraVVWqtWtrVVZUpKVatVVVVVWqtrba6k1Sq",
"lVVWpVVWqlVVa1Vqq0VSSJSqqqqqqqqqqqqqqqqoUqqUpVKpKVVVVSqqoSoRIoqUqqqiUSSikipApCA"
],
"EncodingBits": 953,
"LetterBytes": [
"AHMAdABmAHj__QBwAHYAbABkAGgAZQB1AGIAYQBtAGUAdQBpAHIAaQBjAGUAaQBnAG0AbgBuAHQAYQAA",
"AHMAZQBuAHYAcABhAGn__QBwAGUAbwBvAGIAawBuAGEAbgBhAGsAcABvAGkAbwBzADoAeABhAGsAbgAA",
"AGQAcABz__0AcgAAAHMAagBzAG8AaAB1AGEAbwB0AGwAZQBvAHIAdABpAGwAagBsAGkAbgByAGYAYQB1",
"AGUAcgAAAGEAaQBiAGUAZQBvAG4AYQBoAHIAdgBzAHQAZQBrAG8AYQByAHIAdQBiAAAAbwBuAGEAY__9",
"AHUAdQByAHgAbgBlAGUAaQBpAGoAZQBlAGwAZQBvAGUAcQBvAHQAYwBlAGEAdQAAAHMAYgBqAAAAawBr",
"AAAAaQAAAGEAYQAAAHQAaQByAGkAYwBr__0AbAB0AGsAeQB1AGQAbABjAG4AbAB0AGsAbgB0AGcAbAB6",
"AHQAYQBoAHUAcgBuAHMAYQB1AHIAaQBlAHQAbwB1AGIAAABoAAAAaQBtAHMAdAAAAHQAdQBpAGcAbAAA",
"AHQAZQBpAHAAYQBoAGEAdABpAG8AbwByAAAAbQBmAGkAaABiAGQAaQBuAHQAYQBsAGEAbQAAAHAAcgBh",
"AGQAYwBrAHgAdABwAHkAYwByAGsAdwBhAHkAbgBmAHIAbwBoAHUAZQAAAAAAbgB0AG0AdQAAAGEAAABn",
"AAAAZAAAAAAAegAAAHQAZQAAAGkAbwBnAGkAZwBvAGkAcgBuAGkAbwB0AG7__QByAGQAeABhAG4AZQBw",
"AGEAZABiAGEAbwBlAG8AdABlAG8AawBzAG___QAgAGMAc__9AG8AbABvAGsAaQBj__0AZQBlAHQAaQBu",
"AAAAAAAAAG8AdAAAAGcAYwBnAHAAZQBuAAAAaQBnAAAAawBpAAAAdABhAGEAYQAAAGkAcgBhAG8AAABv",
"AAAAZABsAAAAYQBsAGYAbwBoAG0AcABhAGkAcABqAGwAeQAAAGkAegBvAGsAcgBlAGkAcwBhAAAAAAAA",
"AGgAAABwAG4AeQAAAAAAAABhAAAAAABsAAAAbgAAAAAAawBrAAAAAABsAGkAZgAAAGEAbwAAAGcAbgBy",
"AGQAbwB0AGUAbwBsAGwAAAAAAHMAAABtAGUAAAAAAG0AAABhAAAAZQAAAGsAbgAAAAAAdABlAAD__QAA",
"AGcAAAAAAG0AYQBpAAAAaQAAAAAAAAAAAAAAZwBhAAAAawAAAAAAAABuAAAAAAAAAAAAAA"
]
}
},
{
"Number": 2,
"Data": {
"EncodingBytes": [
"ttW1WuqqrVVVVVVVVVVKqqiqqSqKiA"
],
"EncodingBits": 175,
"LetterBytes": [
"AHT__QBzAHIAcgB0AGEAdABhAGEAbABzAGcAbgBuAHYAYQBoAHkAbABmAHIAaQBzAGcAcwBpAGwAeQBv",
"__0AaQBuAGf__QBoAGkAcwBrAHQAbgBuAGcAZQBuAGkAdABrAG8AcAB0AHQAAABuAGcAbgBh__0AcwBh",
"AGUAaQAAAAAAZwBrAGwAaQByAG8AZgAAAGUAAABkAGEAcgBhAAAAAABkAG8AZAAAAAAAYQAA"
]
}
},
{
"Number": 3,
"Data": {
"EncodingBytes": [
"u3VW1VrdVWrXaqqqqrtVVVVVq1VVVVVaqqqqqqqqrSqqqqqqqiqqqqqqipVVVVUiVVVVClVVCFQg"
],
"EncodingBits": 453,
"LetterBytes": [
"AHQAbwBnAHYAcgBhAGUAYgBz__0AcwBlAG4AbwBhAG0AbAByAGsAawB0AG4AZQBm__0Aa__9AGoAbQBs",
"AGsAdwBlAHUAcgBhAHQAdAByAGwAcwBhAGkAawBlAHAAZAB2AG8AcgBzAGcAawBlAHL__f_9AHAAbQBu",
"AG8AZABhAHUAbABuAHMAbwBuAGEAYgB2AHMAcv_9AHAAcABsAGIAdABuAGkAbABnAGr__QBpAGkAYQB0",
"AGQAcABh__0AdAB3AGsAcABwAGEAYQBlAHMAZQBs__0AawBhAHQAZwBjAHIAAABvAGkAcgByAHIAbwBp",
"AG8AZgB0AGwAcgB1AGQAYQBu__0AaABwAGEAawBzAHYAAAAAAG4AbQBlAHIAZwBzAGUAdABhAGYAbQBy",
"AG4AawBuAGUAbwB2AGQAYwAAAAAAZQBjAGsAAAB0AHMAYQB5AGEAaQBlAGIAaQBzAGQAbABkAHUAaAAA",
"AGsAAAAAAHQAAABhAGMAcwB2AG8AZQBsAGkAaQByAGUAYgAAAAAAAABlAG0AAABrAGwAYQBuAHMAYQBs",
"AGEAAAAAAAAAaQAAAAAAAABnAGwAbgAAAAAAAABrAAA"
]
}
},
{
"Number": 4,
"Data": {
"EncodingBytes": [
"u3dtu1VVW7atVatbbW1VVVVVatbVVVVVVVW1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVKqqqq",
"qqqqqqilVVVVVVVSpFVVVVVKpAqqqVRBVKSJIA"
],
"EncodingBits": 705,
"LetterBytes": [
"AHMAdABvAHYAeQBvAHIAbABw__0Adf_9AHL__QBjAHAAZwBz__0AYwBuAGEAcgBzAHQAdgBlAGQAawBy",
"AGEAdABnAGEAYQBhAGsAYQBtAG4AbABhAHQAYQBwAGUAawBwAGX__QBhAG4AZQBvAG4AeABsAGUAdgBi",
"AG8AZgBr__0AdQB0AHQAYQBlAHQAdgBnAHAAcgBvAGEAcgBkAG0AYgBvAGQAZwBrAGwAcgBiAHIAbwBu",
"AGkAaABlAHQAeQBuAG8AZQByAHMAZAB0__0AZQBnAGIAbgBwAGIAYgBmAHIAcABkAGwAbwBjAHQAeQB0",
"AGYAbABhAHMAbABqAG4AdQBoAHQAcgByAGkAdABpAGsAbgByAHIAZQBvAHAAbwBhAGkAaQBvAHP__QB0",
"AGUAaQB0AHIAdABhAHMAaQBk__0AYwBwAGUAbwB0AHQAYQBtAGsAcgBsAGEAYQBsAG0AZQBtAGsAbABz",
"AHIAYQByAGwAbgBmAGEAbwBlAGcAbQBzAGUAcgBoAHAAdAByAGEAYQByAGEAeQB5AGkAbgBk__0AAABy",
"AGIAYQB0AHQAbwByAGQAZQB0AGkAcgBzAHIAaQBhAHQAbABuAG8AbABzAHIAZABuAGsAbQByAGMAZwBk",
"AGUAbgAAAAAAZABlAAAAcwBlAGEAdABlAGUAYgBrAHMAcwB0AGUAbgBzAGMAYQBkAGgAZQB0AGEAbQBp",
"AGsAAABlAHIAYQAAAHIAAAAAAGcAdAByAHL__QBvAGgAZQBpAG4AaQBsAGsAZwBlAGUAbAAAAGwAYQBz",
"AGEAAABhAAAAAAAAAAAAAABhAHMAcABhAHIAcgB0AG7__QAAAGEAcwB0AGwAAAAAAHQAAAAAAAAAAABp",
"AHYAYQBpAAAAZwBwAAAAawAAAGEAAAAAAGUAAABzAAAAcAAAAAAAAAAAAAA"
]
}
},
{
"Number": 5,
"Data": {
"EncodingBytes": [
"ut1t21Vda7VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVSqqqqqlSqqqoglShQA"
],
"EncodingBits": 415,
"LetterBytes": [
"AGoAdQBhAHMAbgBuAGIAbwBrAHQAZwB0AGsAZQBjAGYAagB0AHIAbgByAHYAZgBpAHQAdABoAGYAYwBt",
"__0AcgBwAHkAYQBsAHAAYQBo__0AcgBvAGkAYQBvAHAAawBtAGwAaQBpAGQAcwB5AHUAbgBhAGwAdQB4",
"AGUAbABrAG8AZQBhAHYAbgBuAGQAaQB4AG4AcwBpAGkAbwBpAGIAdABsAHQAcgByAHQAZwBuAGIAIABy",
"AGsAcABiAHMAbABkAHUAagBhAGEAZgBwAGUAdABkAHUAZwBlAHQAbwBvAG8AagBhAGL__QBkAHT__QBy",
"AHIAcgBvAGsAbwBuAGIAbgB4AGwAYQBuAGIAbgBiAGkAbABhAGEAbwBrAGUAcgBvAGUAZABuAGUAAAB0",
"AGwAcwBvAHMAbAB0AHAAcwB0AHQAZQB2AHYAZQBpAHIAAABhAHQAbAAAAGEAYQBpAGEAbwB0AG4AZQBh",
"AHIAbgBhAAAAAABsAAAAAAAAAAAAcgAAAGcAcgBrAAAAZwBkAAAAAAAAAGEAYQAAAAAAAAAA"
]
}
},
{
"Number": 6,
"Data": {
"EncodingBytes": [
"u21XaqrrVVa6qqqqqqqqtVVVVVVVVVVVVVVaqqqqqqqqqqqqqqpVVVVVFVVUqVVVIlVQSg"
],
"EncodingBits": 419,
"LetterBytes": [
"AHIAZQBiAHMAawBvAGkAaABwAHQAbABsAG4AdQBkAGsAcgBlAGkAYQBsAGQAcwB1AGkAaQBuAGkAbgBu",
"AGcAbQBzAG4AaABiAG8AdgBuAG8AbQBvAGQAaf_9AGUAav_9AGn__QBiAHMAaQBrAGwAZQBwAHAAbwBs",
"AHIAaQB0AG4AbABlAGsAbgBvAHQAbAByAGUAcgByAHMAZQBuAHQAZwBsAGwAdgBuAG0AaQB0AHYAcgBv",
"AGIAcABrAGcAbgBzAHMAcP_9AG8AcwBtAG___QBhAGcAbwBvAG8AZQBpAHQAbgBhAGsAbABoAHQAaQBs",
"AHIAdAByAGUAbABuAGwAbgBp__0AbgBsAHQAYQBwAHMAZQBkAGkAYQBuAGEAbwAAAGcAZAByAGUAaQBh",
"AG4AcgBlAHIAZQBvAG0AZABuAG0AAAAAAGEAcgBjAHIAZP_9AHIAYQBzAG4AAABlAGQAaQAAAGEAawBl",
"AGUAdgBpAG4AbQBzAAAAZQAAAAAAYQAAAGwAYQBuAHMAYQBrAAAAAAAAAAAAZwAAAHT__QAAAAAAAA"
]
}
},
{
"Number": 7,
"Data": {
"EncodingBytes": [
"u3VbVVW6qqqqqrVVVVVVqqqtVVVVVVVVVVVVVVVVVVVVVVVKqqqpKqqQqUUI"
],
"EncodingBits": 359,
"LetterBytes": [
"AHMAeQBr__0AcwBrAHkAaABtAGwAdABhAGwAbwBvAGcAaQBkAGUAdABzAG4AbQBlAGYAbgBlAHUAZQBt",
"AHQAawB0AG8AbgByAGkAZABzAHIAawBl__0Acv_9AG0Aaf_9AG0AaQBrAHMAcgBwAHAAYQBrAG8AaABu",
"AGEAZQBlAHMAaQBsAHYAcwBmAHQAZABlAHMAbABpAGwAagBmAHQAYf_9AHAAYQBlAGkAdAB0AGkAbgBi",
"AHUAaQBpAG4AeABvAGsAbgBmAHMAZQBzAGQAeQBrAHgAcwBlAGwAZQB0AHMAaQBiAHIAdAB1AGcAZABl",
"AGsAcgBpAHMAaQBrAGUAZQBzAGkAcwBnAG8AcgAAAGEAbgBpAHMAYQByAHIAaABzAHQAYQBtAGEAAABn",
"AAAAawBwAGH__QBvAGsAcgByAAAAZAAAAAAAAABkAHYAcAAAAGkAZQAAAAAAYQBwAAAAAAAAAGEAAA"
]
}
},
{
"Number": 8,
"Data": {
"EncodingBytes": [
"ut1tVVVqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVVSpUSA"
],
"EncodingBits": 267,
"LetterBytes": [
"AGsAYQBkAHMAbQByAGcAcABtAHQAZQBvAGkAZQBmAGUAdQByAHIAZwByAG7__QB0AGwAYf_9AGEAbABl",
"AG8AZwBzAHQAZgBu__0AaQBrAG0AZQBrAGkAZgBnAHYAYgB0AGYAbABvAHIAaQBzAGUAZQB2AG8AaQBt",
"AGUAYQBlAHIAcgBlAHIAbgBwAHMAbABsAHYAYQByAHMAZgBlAGkAaQBhAGEAbABrAGsAbAB0AHMAawB2",
"AGsAaQBhAG4AdQBlAHQAbgBnAGEAcwBuAGkAZQBuAGUAYQBpAAAAbQBkAG4AbgBzAG4AbgBmAAAAZQBn",
"AHMAAAB0AGQAdAAAAAAAYQAAAGUAAAAAAAA"
]
}
},
{
"Number": 9,
"Data": {
"EncodingBytes": [
"tdttVW1VWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqVVVSqqpKlKkg"
],
"EncodingBits": 353,
"LetterBytes": [
"AHUAdABsAHMAaQBhAG0AZQB2AHYAYQB2AGsAYQByAGUAaQBzAGsAdABsAGgAcgBp__0AbgBzAHMAdABh",
"AGn__QB1AGsAbgB0AGQAbgB0AG8AbABtAG4AdgBuAG8AdABlAGkAaQBzAHMAYQBzAHUAYQByAHYAZgBu",
"AGwAaQBwAHQAbQBkAGQAaQBpAGkAZwBzAG4AZQBmAGEAZwBzAHQAcwB4AHMAcwB0AG7__QBrAHUAYQBl",
"AGUAZQBoAGoAbwBzAHIAdABkAG4AdABtAHIAbwB1AGwAaQBzAHMAcwBwAHP__QBhAHQAawBlAG___QBv",
"AHQAYQBzAHIAZABhAGQAcgBuAG0AcgBqAHMAawBrAAAAZABvAGH__QByAGT__QBzAHkAbgAAAG0AbgBy",
"AGkAbgBuAGEAZABpAAAAcwAAAG4AaQBzAAAAZABuAAAAZwBuAHQAAABnAAAAZwAAAAAAAA"
]
}
},
{
"Number": 10,
"Data": {
"EncodingBytes": [
"u1qrqraqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoqolSKA"
],
"EncodingBits": 349,
"LetterBytes": [
"AGYAeQBiAGcAcv_9AGwAcgBwAGEAcgBv__0AcgBrAHMAIABzAGMAbgBlAGUAcgBuAGEAdAB2AGsAcwBz",
"AHIAZQB1AG4AaQBh__3__QB0AHMAZABtAG4AbAByAHYAdgBhAG8AaQBtAGkAbABzAGUAZQBuAG4AdABl",
"AG4AIABuAHIAcgBkAHYAdgByAGcAbgBlAHMAcwBhAGH__QBwAHMAaQBkAGsAawBqAGwAcgByAGsAbwBs",
"AHIAcv_9AHMAZABlAG8ALf_9AGkAaQBtAGsAZQBzAG0AbABnAGQAZABmAGEAcgBlAG3__QBnAGEAYf_9",
"AG0AaQBuAGkAcgBuAG4AbgByAHAAbgB0AHMAYQBpAGQAZABlAGEAZwBhAHMAcgBuAGUAZQBsAG4AcwB0",
"AGkAZQBnAAAAAABzAGoAYv_9AG8AAAAAAGUAAABlAHIAbgAAAHQAAAAAAHkAZwAA"
]
}
}
]
37 changes: 0 additions & 37 deletions Words.Web.Core/Controllers/HomeController.cs

This file was deleted.

54 changes: 54 additions & 0 deletions Words.Web.Core/Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
namespace Words.Web.Core
{
public static class Extensions
{
private static readonly Action<ILogger, string, Exception?> information;
private static readonly Action<ILogger, string, Exception?> error;
private static readonly Action<ILogger, object, object, object, Exception?> cacheItemRemoved;
private static readonly Action<ILogger, string, double, Exception?> queryElapsed;

static Extensions()
{
int eventId = 1;
information = LoggerMessage.Define<string>(
LogLevel.Information,
new EventId(eventId++, nameof(Information)),
"Informational message: {Information}");

error = LoggerMessage.Define<string>(
LogLevel.Error,
new EventId(eventId++, nameof(Error)),
"Error message: {Error}");

cacheItemRemoved = LoggerMessage.Define<object, object, object>(
LogLevel.Information,
new EventId(eventId++, nameof(CacheItemRemoved)),
"Cache item {Key} removed due to {Reason}: {@Value}");

queryElapsed = LoggerMessage.Define<string, double>(
LogLevel.Information,
new EventId(eventId++, nameof(QueryElapsed)),
"Query '{Text}',{MilliSeconds:F2}");
}

public static void Information(this ILogger logger, string message)
{
information.Invoke(logger, message, null);
}

public static void Error(this ILogger logger, string message)
{
error.Invoke(logger, message, null);
}

public static void CacheItemRemoved(this ILogger logger, object key, object reason, object value)
{
cacheItemRemoved.Invoke(logger, key, reason, value, null);
}

public static void QueryElapsed(this ILogger logger, string text, double milliseconds)
{
queryElapsed.Invoke(logger, text, milliseconds, null);
}
}
}
11 changes: 0 additions & 11 deletions Words.Web.Core/Models/ErrorViewModel.cs

This file was deleted.

53 changes: 53 additions & 0 deletions Words.Web.Core/NLog.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Debug" internalLogFile="internal-nlog-AspNetCore.txt">

<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>

<!-- the targets to write to -->
<targets>
<!-- File Target for all log messages with basic details -->
<target
xsi:type="File"
name="allfile"
archiveAboveSize="10485760"
archiveFileName="${basedir}log/all.{#}.log"
archiveNumbering="Rolling"
fileName="${basedir}log/all.log"
layout="date='${longdate}' eventId=${event-properties:item=EventId_Id:whenEmpty=0} level=${uppercase:${level}} logger=${logger} message='${message}' ${exception:format=tostring}" />

<!-- File Target for own log messages with extra web details using some ASP.NET core renderers -->
<target
xsi:type="File"
name="ownFile-web"
archiveAboveSize="10485760"
archiveFileName="${basedir}log/web.{#}.log"
archiveNumbering="Rolling"
filename="${basedir}log/web.log"
layout="${longdate};${event-properties:item=EventId_Id:whenEmpty=0};${uppercase:${level}};${logger};${message};${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}|${callsite}| body: ${aspnet-request-posted-body}" />

<!--Console Target for hosting lifetime messages to improve Docker / Visual Studio startup detection -->
<target
xsi:type="Console"
name="lifetimeConsole"
layout="${longdate} ${level}: ${logger:whenEmpty=daniel}${newline} ${message}${exception:format=tostring}" />
</targets>

<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile, lifetimeConsole" />

<!--Output hosting lifetime messages to console target for faster startup detection -->
<!-- <logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="lifetimeConsole, ownFile-web" final="true" /> -->

<!--Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
<logger name="Microsoft.*" maxlevel="Info" final="true" />
<logger name="System.Net.Http.*" maxlevel="Info" final="true" />

<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
Loading