Skip to content

Commit

Permalink
fix: Incorrect birthdate in the Profile when it is saved from the Pas…
Browse files Browse the repository at this point in the history
…sport (#2200)
  • Loading branch information
sandrade-dcl authored Sep 30, 2024
1 parent 93343dd commit 4377a75
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public class UserAdditionalFields_PassportSubModuleController
private readonly IObjectPool<AdditionalField_PassportFieldView> additionalFieldsPoolForEdition;
private readonly List<AdditionalField_PassportFieldView> instantiatedAdditionalFieldsForEdition = new ();

private readonly string[] validInputFormatsForDate = { "dd/MM/yyyy", "ddMMyyyy" };

public int CurrentAdditionalFieldsCount => instantiatedAdditionalFields.Count;

public UserAdditionalFields_PassportSubModuleController(UserDetailedInfo_PassportModuleView view)
Expand Down Expand Up @@ -231,7 +233,7 @@ public void SaveDataIntoProfile()
{
foreach (var additionalFieldForEdition in instantiatedAdditionalFieldsForEdition)
{
string valueToSave = !string.IsNullOrEmpty(additionalFieldForEdition.EditionTextInput.text) ? additionalFieldForEdition.EditionTextInput.text : null;
string? valueToSave = !string.IsNullOrEmpty(additionalFieldForEdition.EditionTextInput.text) ? additionalFieldForEdition.EditionTextInput.text : null;
switch (additionalFieldForEdition.Type)
{
case AdditionalFieldType.GENDER:
Expand All @@ -242,7 +244,7 @@ public void SaveDataIntoProfile()
break;
case AdditionalFieldType.BIRTH_DATE:
if (valueToSave != null)
currentProfile.Birthdate = DateTime.ParseExact(valueToSave, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
currentProfile.Birthdate = DateTime.ParseExact(valueToSave, validInputFormatsForDate, CultureInfo.InvariantCulture, DateTimeStyles.None);
else
currentProfile.Birthdate = null;
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,25 @@ private void SaveInfoSection()
{
saveInfoCts = saveInfoCts.SafeRestart();
SaveInfoAsync(saveInfoCts.Token).Forget();
return;
}

async UniTaskVoid SaveInfoAsync(CancellationToken ct)
private async UniTaskVoid SaveInfoAsync(CancellationToken ct)
{
try
{
SetInfoSectionAsSavingStatus(true);
descriptionController.SaveDataIntoProfile();
additionalFieldsController.SaveDataIntoProfile();
await passportProfileInfoController.UpdateProfileAsync(ct);
}
catch (OperationCanceledException) { }
catch (Exception e)
{
const string ERROR_MESSAGE = "There was an error while trying to save your profile. Please try again!";
passportErrorsController.Show(ERROR_MESSAGE);
ReportHub.LogError(ReportCategory.PROFILE, $"{ERROR_MESSAGE} ERROR: {e.Message}");
SetInfoSectionAsEditionMode(false);
}
}

private void SetInfoSectionAsSavingStatus(bool isSaving)
Expand Down

0 comments on commit 4377a75

Please sign in to comment.