@model NamesLibraryViewModel
@{
ViewData["Title"] = $"Names Library - {Model.Project.ProjectName}";
ViewData["ProjectSection"] = "Names";
var filter = Model.Filter;
var previousPage = Math.Max(1, filter.Page - 1);
var nextPage = Math.Min(Model.TotalPages, filter.Page + 1);
var genderPreset = (filter.GenderPreference, filter.GenderThreshold) switch
{
("Female", >= 0.9m) => "female-very-strong",
("Female", >= 0.7m) => "female-strong",
("Female", _) => "female-mostly",
("Male", >= 0.9m) => "male-very-strong",
("Male", >= 0.7m) => "male-strong",
("Male", _) => "male-mostly",
("Mixed", _) => "mixed-balanced",
_ => string.Empty
};
string GenderLabel(NameSearchResult row)
{
if (!row.FemaleWeight.HasValue || !row.MaleWeight.HasValue)
{
return "No profile";
}
if (row.FemaleWeight >= 0.7m)
{
return "strong female prior";
}
if (row.MaleWeight >= 0.7m)
{
return "strong male prior";
}
return "mixed prior";
}
string EraLabel(NameSearchResult row)
=> row.BirthYearFrom.HasValue && row.BirthYearTo.HasValue
? $"established for {row.BirthYearFrom}-{row.BirthYearTo}"
: "no era profile";
}
Characters
Search established given-name forms with era, locale and current-project usage context.
No matching names found.
} else {| Name | Profile | Related forms | Current use |
|---|---|---|---|
|
@row.DisplayName
@row.NameType@if (row.IsWordAmbiguous){ · ambiguous word}
|
@GenderLabel(row); @EraLabel(row)
@row.LocaleDisplayName · usage @row.UsageWeight?.ToString("0.000") · confidence @row.Confidence?.ToString("0.000")
|
@(string.IsNullOrWhiteSpace(row.RelatedForms) ? "None listed" : row.RelatedForms) |
@if (row.UsedCount > 0)
{
Already used
@row.UsedSummary
}
else
{
Unused here
}
|