people tags #387
This commit is contained in:
parent
073222ec6d
commit
57e6d77df2
@ -2816,6 +2816,35 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="ganjoorService"></param>
|
<param name="ganjoorService"></param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:RMuseum.Controllers.GanjoorRelatedPersonController">
|
||||||
|
<summary>
|
||||||
|
related people (family tree / person tagging) - read-only for now, see IGanjoorRelatedPersonService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Controllers.GanjoorRelatedPersonController.GetPeopleAsync">
|
||||||
|
<summary>
|
||||||
|
get all people
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Controllers.GanjoorRelatedPersonController.GetPersonAsync(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
get person by id
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Controllers.GanjoorRelatedPersonController._personService">
|
||||||
|
<summary>
|
||||||
|
person service
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Controllers.GanjoorRelatedPersonController.#ctor(RMuseum.Services.IGanjoorRelatedPersonService)">
|
||||||
|
<summary>
|
||||||
|
constructor
|
||||||
|
</summary>
|
||||||
|
<param name="personService"></param>
|
||||||
|
</member>
|
||||||
<member name="M:RMuseum.Controllers.GeoLocationController.GetLocationsAsync">
|
<member name="M:RMuseum.Controllers.GeoLocationController.GetLocationsAsync">
|
||||||
<summary>
|
<summary>
|
||||||
get all locations
|
get all locations
|
||||||
@ -14135,6 +14164,84 @@
|
|||||||
model (not an EF entity), so no [NotMapped] or migration concerns here.
|
model (not an EF entity), so no [NotMapped] or migration concerns here.
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:RMuseum.Models.Ganjoor.ViewModels.PersonGraphSuggestion">
|
||||||
|
<summary>
|
||||||
|
deserialized shape of GanjoorPoemGeoDateTagCorrection.SuggestedPersonGraphJson - a brand new
|
||||||
|
person (optionally linked to other people, new or existing) suggested in one go alongside a
|
||||||
|
poem's geo/date/person tag. See that field's doc comment for the full JSON shape.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphSuggestion.Person">
|
||||||
|
<summary>
|
||||||
|
the node that ends up assigned to the tag's PersonId once approved
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphSuggestion.RelatedPeople">
|
||||||
|
<summary>
|
||||||
|
other people this submission also introduces or links to, referenced from Relations by
|
||||||
|
their LocalKey
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphSuggestion.Relations">
|
||||||
|
<summary>
|
||||||
|
kinship and/or non-family edges between any of Person/RelatedPeople's local keys
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:RMuseum.Models.Ganjoor.ViewModels.PersonGraphNode">
|
||||||
|
<summary>
|
||||||
|
one person node in a PersonGraphSuggestion - either a link to an existing, already approved
|
||||||
|
GanjoorRelatedPerson (ExistingPersonId set, the rest ignored) or a brand new person to create
|
||||||
|
(ExistingPersonId null, the rest describing them)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphNode.LocalKey">
|
||||||
|
<summary>
|
||||||
|
key used only to resolve Relations entries within this same submission - never stored
|
||||||
|
beyond approval time
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphNode.ExistingPersonId">
|
||||||
|
<summary>
|
||||||
|
set to link to an existing, already approved person instead of creating a new one - when
|
||||||
|
set, every other field on this node is ignored
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphNode.FamilyTreeCaption">
|
||||||
|
<summary>
|
||||||
|
see GanjoorRelatedPerson.FamilyTreeCaption - only meaningful for whichever node is meant
|
||||||
|
to be a tree's named root
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:RMuseum.Models.Ganjoor.ViewModels.PersonGraphRelationEntry">
|
||||||
|
<summary>
|
||||||
|
one edge in a PersonGraphSuggestion, between two nodes referenced by their LocalKey (Person1/
|
||||||
|
Person2 - matching PersonGraphNode.LocalKey, not a real database id yet). Kind picks which
|
||||||
|
enum RelationType/AffiliationType is parsed against and which live table the edge is
|
||||||
|
materialized into on approval.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphRelationEntry.Kind">
|
||||||
|
<summary>
|
||||||
|
"family" (default, materialized as GanjoorPersonRelation - RelationType against
|
||||||
|
PersonRelationType) or "affiliation" (materialized as GanjoorPersonAffiliation -
|
||||||
|
AffiliationType against PersonAffiliationType)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphRelationEntry.RelationType">
|
||||||
|
<summary>
|
||||||
|
parsed against PersonRelationType when Kind is "family"
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphRelationEntry.AffiliationType">
|
||||||
|
<summary>
|
||||||
|
parsed against PersonAffiliationType when Kind is "affiliation"
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.Ganjoor.ViewModels.PersonGraphRelationEntry.DegreeHint">
|
||||||
|
<summary>
|
||||||
|
only meaningful for a family relation of type Ancestor - see GanjoorPersonRelation.DegreeHint
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel">
|
<member name="T:RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel">
|
||||||
<summary>
|
<summary>
|
||||||
Ganjoor Poem related music track model
|
Ganjoor Poem related music track model
|
||||||
@ -17460,6 +17567,26 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:RMuseum.Services.IGanjoorRelatedPersonService">
|
||||||
|
<summary>
|
||||||
|
related people (family tree / person tagging) service - read-only for now: the only way a
|
||||||
|
new person is created is via the geo/date/person tag correction's SuggestedPersonGraphJson,
|
||||||
|
materialized on moderator approval (see GanjoorService-ModeratePoemCorrection.cs)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.IGanjoorRelatedPersonService.GetPeopleAsync">
|
||||||
|
<summary>
|
||||||
|
get all people (for the search-as-you-type person picker)
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.IGanjoorRelatedPersonService.GetPersonAsync(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
get person by id
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:RMuseum.Services.IGanjoorService">
|
<member name="T:RMuseum.Services.IGanjoorService">
|
||||||
<summary>
|
<summary>
|
||||||
Ganjoor Poems Content Privider Service
|
Ganjoor Poems Content Privider Service
|
||||||
@ -20891,6 +21018,35 @@
|
|||||||
<param name="format"></param>
|
<param name="format"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:RMuseum.Services.Implementation.GanjoorRelatedPersonService">
|
||||||
|
<summary>
|
||||||
|
related people service implementation
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.Implementation.GanjoorRelatedPersonService.GetPeopleAsync">
|
||||||
|
<summary>
|
||||||
|
get all people
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.Implementation.GanjoorRelatedPersonService.GetPersonAsync(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
get person by id
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Services.Implementation.GanjoorRelatedPersonService._context">
|
||||||
|
<summary>
|
||||||
|
Database Context
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.Implementation.GanjoorRelatedPersonService.#ctor(RMuseum.DbContext.RMuseumDbContext)">
|
||||||
|
<summary>
|
||||||
|
constructor
|
||||||
|
</summary>
|
||||||
|
<param name="context"></param>
|
||||||
|
</member>
|
||||||
<member name="T:RMuseum.Services.Implementation.GanjoorService">
|
<member name="T:RMuseum.Services.Implementation.GanjoorService">
|
||||||
<summary>
|
<summary>
|
||||||
IGanjoorService implementation
|
IGanjoorService implementation
|
||||||
@ -21438,6 +21594,16 @@
|
|||||||
<param name="moderation"></param>
|
<param name="moderation"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:RMuseum.Services.Implementation.GanjoorService._MaterializePersonGraphAsync(System.String)">
|
||||||
|
<summary>
|
||||||
|
materializes a GanjoorPoemGeoDateTagCorrection.SuggestedPersonGraphJson payload: creates
|
||||||
|
any brand new person nodes it describes (or reuses an existing one when a node names
|
||||||
|
ExistingPersonId), then creates the kinship (GanjoorPersonRelation) and/or non-family
|
||||||
|
(GanjoorPersonAffiliation) edges between them. Returns the resolved id of the "person"
|
||||||
|
node (the one that ends up assigned to the tag's PersonId), or an error message.
|
||||||
|
</summary>
|
||||||
|
<param name="json">SuggestedPersonGraphJson value - see its doc comment for the expected shape</param>
|
||||||
|
</member>
|
||||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.ModeratePoemSectionCorrection(System.Guid,RMuseum.Models.Ganjoor.ViewModels.GanjoorPoemSectionCorrectionViewModel)">
|
<member name="M:RMuseum.Services.Implementation.GanjoorService.ModeratePoemSectionCorrection(System.Guid,RMuseum.Models.Ganjoor.ViewModels.GanjoorPoemSectionCorrectionViewModel)">
|
||||||
<summary>
|
<summary>
|
||||||
moderate poem section correction
|
moderate poem section correction
|
||||||
|
|||||||
@ -2129,9 +2129,10 @@ namespace RMuseum.Services.Implementation
|
|||||||
bool hasLocation = geoDateTag.LocationId != null ||
|
bool hasLocation = geoDateTag.LocationId != null ||
|
||||||
(!string.IsNullOrWhiteSpace(geoDateTag.SuggestedLocationName) && geoDateTag.SuggestedLatitude != null && geoDateTag.SuggestedLongitude != null);
|
(!string.IsNullOrWhiteSpace(geoDateTag.SuggestedLocationName) && geoDateTag.SuggestedLatitude != null && geoDateTag.SuggestedLongitude != null);
|
||||||
bool hasDate = geoDateTag.LunarYear != null;
|
bool hasDate = geoDateTag.LunarYear != null;
|
||||||
if (!hasLocation && !hasDate)
|
bool hasPerson = geoDateTag.PersonId != null || !string.IsNullOrWhiteSpace(geoDateTag.SuggestedPersonGraphJson);
|
||||||
|
if (!hasLocation && !hasDate && !hasPerson)
|
||||||
{
|
{
|
||||||
return new RServiceResult<GanjoorPoemCorrectionViewModel>(null, "برچسب جغرافیایی/تاریخی باید حداقل شامل مکان یا تاریخ باشد.");
|
return new RServiceResult<GanjoorPoemCorrectionViewModel>(null, "برچسب جغرافیایی/تاریخی/فردی باید حداقل شامل مکان، تاریخ یا فرد باشد.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (geoDateTag.LocationId == null && !string.IsNullOrWhiteSpace(geoDateTag.SuggestedLocationName)
|
if (geoDateTag.LocationId == null && !string.IsNullOrWhiteSpace(geoDateTag.SuggestedLocationName)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user