Init
This commit is contained in:
60
Shared/Models/Stateless/Methods/PersonName.cs
Normal file
60
Shared/Models/Stateless/Methods/PersonName.cs
Normal file
@ -0,0 +1,60 @@
|
||||
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
|
||||
internal abstract class PersonName
|
||||
{
|
||||
|
||||
// ...
|
||||
|
||||
internal static Models.PersonName Create(string name)
|
||||
{
|
||||
Models.PersonName result;
|
||||
Models.PersonNameLast personNameLast;
|
||||
Models.PersonNameAlias personNameAlias;
|
||||
Models.PersonNameFirst personNameFirst;
|
||||
Models.PersonNameMiddle personNameMiddle;
|
||||
string[] segments = name.Split(' ');
|
||||
if (segments.Length == 1)
|
||||
{
|
||||
personNameFirst = new(string.Empty);
|
||||
personNameLast = new(string.Empty);
|
||||
personNameMiddle = new(string.Empty);
|
||||
personNameAlias = new(segments[0]);
|
||||
}
|
||||
else if (segments.Length == 2)
|
||||
{
|
||||
personNameFirst = new(segments[0]);
|
||||
personNameLast = new(segments[1]);
|
||||
personNameMiddle = new(string.Empty);
|
||||
personNameAlias = new(string.Empty);
|
||||
}
|
||||
else if (segments.Length == 3 && segments[2] is "Jr." or "Jr" or "Sr")
|
||||
{
|
||||
personNameFirst = new(segments[0]);
|
||||
personNameLast = new(segments[1]);
|
||||
personNameMiddle = new(string.Empty);
|
||||
personNameAlias = new(string.Join(' ', segments));
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] comment = name.Split(new string[] { " (" }, StringSplitOptions.None);
|
||||
if (comment.Length == 1)
|
||||
{
|
||||
personNameFirst = new(segments[0]);
|
||||
personNameLast = new(segments[^1]);
|
||||
personNameMiddle = new(string.Empty);
|
||||
personNameAlias = new(string.Join(' ', segments));
|
||||
}
|
||||
else
|
||||
{
|
||||
segments = comment[0].Split(' ');
|
||||
personNameFirst = new(segments[0]);
|
||||
personNameLast = new(segments[^1]);
|
||||
personNameMiddle = new(string.Empty);
|
||||
personNameAlias = new(string.Concat(string.Join(' ', segments), " (", comment[1]));
|
||||
}
|
||||
}
|
||||
result = new(personNameFirst, personNameMiddle, personNameLast, personNameAlias);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user