Update FormatedName functionality now just truncates and adds OverflowChar + fixing getter Split, Stage, Contest
This commit is contained in:
@ -36,30 +36,30 @@ FString FDTFluxPerson::GetNormalizedString() const
|
|||||||
bool FDTFluxPerson::IsValid() const
|
bool FDTFluxPerson::IsValid() const
|
||||||
{
|
{
|
||||||
return !FirstName.TrimStartAndEnd().IsEmpty() &&
|
return !FirstName.TrimStartAndEnd().IsEmpty() &&
|
||||||
!LastName.TrimStartAndEnd().IsEmpty() &&
|
!LastName.TrimStartAndEnd().IsEmpty() &&
|
||||||
!Gender.TrimStartAndEnd().IsEmpty();
|
!Gender.TrimStartAndEnd().IsEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
FDTFluxParticipant::FDTFluxParticipant()
|
FDTFluxParticipant::FDTFluxParticipant()
|
||||||
: Bib(-1)
|
: Bib(-1)
|
||||||
, ContestId(-1)
|
, ContestId(-1)
|
||||||
, Elite(false)
|
, Elite(false)
|
||||||
, Status(static_cast<EDTFluxParticipantStatusType>(0))
|
, Status(static_cast<EDTFluxParticipantStatusType>(0))
|
||||||
, bIsMassStartParticipant(false)
|
, bIsMassStartParticipant(false)
|
||||||
, CurrentSplit(-1)
|
, CurrentSplit(-1)
|
||||||
{
|
{
|
||||||
Teammate.Reset();
|
Teammate.Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
FDTFluxParticipant::FDTFluxParticipant(const TSharedPtr<FJsonObject>& JsonObject)
|
FDTFluxParticipant::FDTFluxParticipant(const TSharedPtr<FJsonObject>& JsonObject)
|
||||||
: Bib(JsonObject->GetIntegerField(TEXT("bib")))
|
: Bib(JsonObject->GetIntegerField(TEXT("bib")))
|
||||||
, ContestId(JsonObject->GetIntegerField(TEXT("contestId")))
|
, ContestId(JsonObject->GetIntegerField(TEXT("contestId")))
|
||||||
, Category(JsonObject->GetStringField(TEXT("category")))
|
, Category(JsonObject->GetStringField(TEXT("category")))
|
||||||
, Club(JsonObject->GetStringField(TEXT("club")))
|
, Club(JsonObject->GetStringField(TEXT("club")))
|
||||||
, Elite(JsonObject->GetBoolField(TEXT("elite")))
|
, Elite(JsonObject->GetBoolField(TEXT("elite")))
|
||||||
, Status(static_cast<EDTFluxParticipantStatusType>(JsonObject->GetIntegerField(TEXT("status"))))
|
, Status(static_cast<EDTFluxParticipantStatusType>(JsonObject->GetIntegerField(TEXT("status"))))
|
||||||
, Team(JsonObject->GetStringField(TEXT("team")))
|
, Team(JsonObject->GetStringField(TEXT("team")))
|
||||||
, CurrentSplit(-1)
|
, CurrentSplit(-1)
|
||||||
{
|
{
|
||||||
UE_LOG(logDTFluxCore, Log, TEXT("Creating participant from JSON - Bib: %d, Contest: %d"), Bib, ContestId);
|
UE_LOG(logDTFluxCore, Log, TEXT("Creating participant from JSON - Bib: %d, Contest: %d"), Bib, ContestId);
|
||||||
|
|
||||||
@ -70,7 +70,8 @@ FDTFluxParticipant::FDTFluxParticipant(const TSharedPtr<FJsonObject>& JsonObject
|
|||||||
FString GenderKey = Index == 1 ? TEXT("gender") : FString::Printf(TEXT("gender%d"), Index);
|
FString GenderKey = Index == 1 ? TEXT("gender") : FString::Printf(TEXT("gender%d"), Index);
|
||||||
|
|
||||||
// Vérifie si au moins un des champs existe
|
// Vérifie si au moins un des champs existe
|
||||||
if (!JsonObject->HasField(FirstNameKey) && !JsonObject->HasField(LastNameKey) && !JsonObject->HasField(GenderKey))
|
if (!JsonObject->HasField(FirstNameKey) && !JsonObject->HasField(LastNameKey) && !JsonObject->
|
||||||
|
HasField(GenderKey))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -157,16 +158,15 @@ const TArray<FDTFluxPerson>& FDTFluxParticipant::GetTeammate() const
|
|||||||
return Teammate;
|
return Teammate;
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FDTFluxParticipant::GetFormattedName(const int MaxChar, const FString& Separator, const FString& OverflowChar) const
|
FString FDTFluxParticipant::GetFormattedName(const int MaxChar, const FString& Separator,
|
||||||
|
const FString& OverflowChar) const
|
||||||
{
|
{
|
||||||
if (MaxChar <= 0)
|
if (MaxChar <= 0)
|
||||||
{
|
{
|
||||||
return TEXT("");
|
return TEXT("");
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FirstName;
|
FString FirstName;
|
||||||
FString LastName;
|
FString LastName;
|
||||||
|
|
||||||
if (IsTeam())
|
if (IsTeam())
|
||||||
{
|
{
|
||||||
if (!Team.IsEmpty())
|
if (!Team.IsEmpty())
|
||||||
@ -197,46 +197,17 @@ FString FDTFluxParticipant::GetFormattedName(const int MaxChar, const FString& S
|
|||||||
{
|
{
|
||||||
Initial = FirstName.Left(1).ToUpper() + Separator;
|
Initial = FirstName.Left(1).ToUpper() + Separator;
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FormattedLastName = LastName.ToUpper();
|
FString FormattedLastName = LastName.ToUpper();
|
||||||
FString FullName = Initial + FormattedLastName;
|
FString FullName = Initial + FormattedLastName;
|
||||||
|
|
||||||
if (FullName.Len() <= MaxChar)
|
if (FullName.Len() <= MaxChar)
|
||||||
{
|
{
|
||||||
return FullName;
|
return FullName;
|
||||||
}
|
}
|
||||||
|
return FullName.Left(MaxChar) + OverflowChar;
|
||||||
const int32 OverflowLength = OverflowChar.Len();
|
|
||||||
|
|
||||||
if (OverflowLength > MaxChar)
|
|
||||||
{
|
|
||||||
return FullName.Left(MaxChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Initial.Len() + OverflowLength > MaxChar)
|
|
||||||
{
|
|
||||||
return FullName.Left(MaxChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
const int32 AvailableForLastName = MaxChar - Initial.Len() - OverflowLength;
|
|
||||||
|
|
||||||
if (AvailableForLastName <= 0)
|
|
||||||
{
|
|
||||||
return FullName.Left(MaxChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
FString TruncatedName = Initial + FormattedLastName.Left(AvailableForLastName) + OverflowChar;
|
|
||||||
|
|
||||||
if (TruncatedName.Len() > MaxChar)
|
|
||||||
{
|
|
||||||
return TruncatedName.Left(MaxChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TruncatedName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FDTFluxParticipant::GetConcatFormattedName(const int MaxChar, const FString& Separator,
|
FString FDTFluxParticipant::GetConcatFormattedName(const int MaxChar, const FString& Separator,
|
||||||
const FString& OverflowChar, const FString& BibSeparator) const
|
const FString& OverflowChar, const FString& BibSeparator) const
|
||||||
{
|
{
|
||||||
FString BibText = FString::FromInt(Bib) + BibSeparator;
|
FString BibText = FString::FromInt(Bib) + BibSeparator;
|
||||||
int32 RemainingChars = MaxChar - BibText.Len();
|
int32 RemainingChars = MaxChar - BibText.Len();
|
||||||
@ -250,39 +221,40 @@ FString FDTFluxParticipant::GetConcatFormattedName(const int MaxChar, const FStr
|
|||||||
return BibText + FormattedName;
|
return BibText + FormattedName;
|
||||||
}
|
}
|
||||||
|
|
||||||
FText FDTFluxParticipant::GetFormattedNameText(const int MaxChar, const FString& Separator, const FString& OverflowChar) const
|
FText FDTFluxParticipant::GetFormattedNameText(const int MaxChar, const FString& Separator,
|
||||||
|
const FString& OverflowChar) const
|
||||||
{
|
{
|
||||||
return FText::FromString(GetFormattedName(MaxChar, Separator, OverflowChar));
|
return FText::FromString(GetFormattedName(MaxChar, Separator, OverflowChar));
|
||||||
}
|
}
|
||||||
|
|
||||||
FText FDTFluxParticipant::GetConcatFormattedNameText(const int MaxChar, const FString& Separator,
|
FText FDTFluxParticipant::GetConcatFormattedNameText(const int MaxChar, const FString& Separator,
|
||||||
const FString& OverflowChar, const FString& BibSeparator) const
|
const FString& OverflowChar, const FString& BibSeparator) const
|
||||||
{
|
{
|
||||||
return FText::FromString(GetConcatFormattedName(MaxChar, Separator, OverflowChar, BibSeparator));
|
return FText::FromString(GetConcatFormattedName(MaxChar, Separator, OverflowChar, BibSeparator));
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FDTFluxParticipant::GetFormattedName(const FDTFluxParticipant& Participant, const int MaxChar,
|
FString FDTFluxParticipant::GetFormattedName(const FDTFluxParticipant& Participant, const int MaxChar,
|
||||||
const FString& Separator, const FString& OverflowChar)
|
const FString& Separator, const FString& OverflowChar)
|
||||||
{
|
{
|
||||||
return Participant.GetFormattedName(MaxChar, Separator, OverflowChar);
|
return Participant.GetFormattedName(MaxChar, Separator, OverflowChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
FString FDTFluxParticipant::GetConcatFormattedName(const FDTFluxParticipant& Participant, const int MaxChar,
|
FString FDTFluxParticipant::GetConcatFormattedName(const FDTFluxParticipant& Participant, const int MaxChar,
|
||||||
const FString& Separator, const FString& OverflowChar,
|
const FString& Separator, const FString& OverflowChar,
|
||||||
const FString& BibSeparator)
|
const FString& BibSeparator)
|
||||||
{
|
{
|
||||||
return Participant.GetConcatFormattedName(MaxChar, Separator, OverflowChar, BibSeparator);
|
return Participant.GetConcatFormattedName(MaxChar, Separator, OverflowChar, BibSeparator);
|
||||||
}
|
}
|
||||||
|
|
||||||
FText FDTFluxParticipant::GetFormattedNameText(const FDTFluxParticipant& Participant, const int MaxChar,
|
FText FDTFluxParticipant::GetFormattedNameText(const FDTFluxParticipant& Participant, const int MaxChar,
|
||||||
const FString& Separator, const FString& OverflowChar)
|
const FString& Separator, const FString& OverflowChar)
|
||||||
{
|
{
|
||||||
return Participant.GetFormattedNameText(MaxChar, Separator, OverflowChar);
|
return Participant.GetFormattedNameText(MaxChar, Separator, OverflowChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
FText FDTFluxParticipant::GetConcatFormattedNameText(const FDTFluxParticipant& Participant, const int MaxChar,
|
FText FDTFluxParticipant::GetConcatFormattedNameText(const FDTFluxParticipant& Participant, const int MaxChar,
|
||||||
const FString& Separator, const FString& OverflowChar,
|
const FString& Separator, const FString& OverflowChar,
|
||||||
const FString& BibSeparator)
|
const FString& BibSeparator)
|
||||||
{
|
{
|
||||||
return Participant.GetConcatFormattedNameText(MaxChar, Separator, OverflowChar, BibSeparator);
|
return Participant.GetConcatFormattedNameText(MaxChar, Separator, OverflowChar, BibSeparator);
|
||||||
}
|
}
|
||||||
@ -300,6 +272,6 @@ FDTFluxParticipant FDTFluxParticipant::CreateFromJson(const TSharedPtr<FJsonObje
|
|||||||
|
|
||||||
FDTFluxTeamStatusUpdate::FDTFluxTeamStatusUpdate(const int InBib, const int InStatus)
|
FDTFluxTeamStatusUpdate::FDTFluxTeamStatusUpdate(const int InBib, const int InStatus)
|
||||||
: Bib(InBib)
|
: Bib(InBib)
|
||||||
, Status(static_cast<EDTFluxParticipantStatusType>(InStatus))
|
, Status(static_cast<EDTFluxParticipantStatusType>(InStatus))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -129,10 +129,13 @@ public:
|
|||||||
FDTFluxContest ContestDefinition;
|
FDTFluxContest ContestDefinition;
|
||||||
if (GetContestForId(ContestId, ContestDefinition))
|
if (GetContestForId(ContestId, ContestDefinition))
|
||||||
{
|
{
|
||||||
if (ContestDefinition.Stages.IsValidIndex(StageId))
|
for (auto& Stage : ContestDefinition.Stages)
|
||||||
{
|
{
|
||||||
OutStageDefinition = ContestDefinition.Stages[StageId];
|
if (Stage.StageId == StageId)
|
||||||
return true;
|
{
|
||||||
|
OutStageDefinition = Stage;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OutStageDefinition = FDTFluxStage();
|
OutStageDefinition = FDTFluxStage();
|
||||||
@ -149,10 +152,13 @@ public:
|
|||||||
FDTFluxContest ContestDefinition;
|
FDTFluxContest ContestDefinition;
|
||||||
if (GetContestForId(ContestId, ContestDefinition))
|
if (GetContestForId(ContestId, ContestDefinition))
|
||||||
{
|
{
|
||||||
if (ContestDefinition.Splits.IsValidIndex(SplitId))
|
for (auto& Split : ContestDefinition.Splits)
|
||||||
{
|
{
|
||||||
OutSplitDefinition = ContestDefinition.Splits[SplitId];
|
if (Split.SplitId == SplitId)
|
||||||
return true;
|
{
|
||||||
|
OutSplitDefinition = Split;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OutSplitDefinition = FDTFluxSplit();
|
OutSplitDefinition = FDTFluxSplit();
|
||||||
|
|||||||
Reference in New Issue
Block a user