add draft
This commit is contained in:
80
ResourceString.Net.Logic/Factories/CodeSnippetFactory.cs
Normal file
80
ResourceString.Net.Logic/Factories/CodeSnippetFactory.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using ResourceString.Net.Logic.DomainObjects.Resx;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace ResourceString.Net.Logic.Factories;
|
||||
|
||||
internal static class CodeSnippetFactory
|
||||
{
|
||||
public static IResourceString CreateResourceMangerMemberCodeSnippet(string typeName)
|
||||
{
|
||||
var formatString = Properties.Resources.ResourceManagerMemberTemplate;
|
||||
return new FormattableResourceString(
|
||||
formatString,
|
||||
LiteralString.Factory(typeName)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static IEnumerable<IResourceString> CreateMemberCodeSnippets(IEnumerable<Resource> resources)
|
||||
{
|
||||
return CreateMemberCodeSnippets(
|
||||
resources,
|
||||
Properties.Resources.DefaultPropertyName_ResourceManager
|
||||
);
|
||||
}
|
||||
|
||||
public static IEnumerable<IResourceString> CreateMemberCodeSnippets(
|
||||
IEnumerable<Resource> resources,
|
||||
IResourceString resourceManagerName
|
||||
)
|
||||
{
|
||||
if (resources is null)
|
||||
{
|
||||
return Enumerable.Empty<IResourceString>();
|
||||
}
|
||||
|
||||
var formatString = Properties.Resources.ResourceStringMembers;
|
||||
return resources.Select(r => new FormattableResourceString(
|
||||
formatString,
|
||||
LiteralString.Factory(r.Name),
|
||||
resourceManagerName
|
||||
));
|
||||
}
|
||||
|
||||
public static IResourceString CreateResourceClassCodeSnippet(
|
||||
string namespaceString,
|
||||
string resourceClassName,
|
||||
IResourceString resourceManagerSnippet,
|
||||
IEnumerable<IResourceString> memberSnippets
|
||||
)
|
||||
{
|
||||
var formatString = Properties.Resources.ResourcesClassTemplate;
|
||||
return new FormattableResourceString(
|
||||
formatString,
|
||||
LiteralString.Factory(namespaceString),
|
||||
LiteralString.Factory(resourceClassName),
|
||||
resourceManagerSnippet,
|
||||
new JoinedResourceString(
|
||||
LiteralString.Empty,
|
||||
memberSnippets?.ToArray() ?? Array.Empty<IResourceString>()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public static IResourceString CreateResourceClassCodeSnippet(
|
||||
string namespaceString,
|
||||
string resourceClassName,
|
||||
IResourceString resourceManagerSnippet,
|
||||
IEnumerable<Resource> resources
|
||||
)
|
||||
{
|
||||
return CreateResourceClassCodeSnippet(
|
||||
namespaceString,
|
||||
resourceClassName,
|
||||
resourceManagerSnippet,
|
||||
CreateMemberCodeSnippets(resources)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user