80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
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)
|
|
);
|
|
}
|
|
} |