public void Get() { new AccountDetailsRequest().Send((response) => { if (response.HasErrors) { print("Getting account details failed!"); } else { accountDetails = JsonUtility.FromJson <AccountDetailsData>(response.JSONString); GUIManager.instance.playerNameTxt.text = accountDetails.displayName; playerData = JsonUtility.FromJson <PlayerData>(accountDetails.scriptData.data); if (playerData == null) { playerData = new PlayerData(); } playerData.displayName = accountDetails.displayName; if (!firstLoad) { Save(Gold: 50000); SetUI(); UpgradeItem[] upgradeItems = FindObjectsOfType <UpgradeItem>(); foreach (var item in upgradeItems) { item.AssignValues(); } } } }); }
public void SynchroniseUserChangesWithGroups( DelegateUser delegateAccountWithOldDetails, AccountDetailsData newDelegateDetails, CentreAnswersData newCentreAnswers ) { var changedLinkedFields = LinkedFieldHelper.GetLinkedFieldChanges( delegateAccountWithOldDetails.GetCentreAnswersData(), newCentreAnswers, jobGroupsDataService, centreCustomPromptsService ); var allSynchronisedGroupsAtCentre = GetSynchronisedGroupsForCentre(delegateAccountWithOldDetails.CentreId).ToList(); foreach (var changedAnswer in changedLinkedFields) { var groupToRemoveDelegateFrom = allSynchronisedGroupsAtCentre.SingleOrDefault( g => g.LinkedToField == changedAnswer.LinkedFieldNumber && GroupLabelMatchesAnswer(g.GroupLabel, changedAnswer.OldValue, changedAnswer.LinkedFieldName) ); var groupToAddDelegateTo = allSynchronisedGroupsAtCentre.SingleOrDefault( g => g.LinkedToField == changedAnswer.LinkedFieldNumber && GroupLabelMatchesAnswer(g.GroupLabel, changedAnswer.NewValue, changedAnswer.LinkedFieldName) ); using var transaction = new TransactionScope(); if (groupToRemoveDelegateFrom != null) { RemoveDelegateFromGroup(delegateAccountWithOldDetails.Id, groupToRemoveDelegateFrom.GroupId); } if (groupToAddDelegateTo != null) { groupsDataService.AddDelegateToGroup( delegateAccountWithOldDetails.Id, groupToAddDelegateTo.GroupId, clockService.UtcNow, 1 ); EnrolDelegateOnGroupCourses( delegateAccountWithOldDetails, newDelegateDetails, groupToAddDelegateTo.GroupId ); } transaction.Complete(); } }
public void EnrolDelegateOnGroupCourses( DelegateUser delegateAccountWithOldDetails, AccountDetailsData newDetails, int groupId, int?addedByAdminId = null ) { var groupCourses = GetUsableGroupCoursesForCentre(groupId, delegateAccountWithOldDetails.CentreId); var fullName = newDetails.FirstName + " " + newDetails.Surname; foreach (var groupCourse in groupCourses) { EnrolDelegateOnGroupCourse( delegateAccountWithOldDetails.Id, newDetails.Email, fullName, addedByAdminId, groupCourse, false ); } }
public void EnrolDelegateOnGroupCourses( DelegateUser delegateAccountWithOldDetails, AccountDetailsData newDetails, int groupId, int?addedByAdminId = null ) { var groupCourses = GetUsableGroupCoursesForCentre(groupId, delegateAccountWithOldDetails.CentreId); foreach (var groupCourse in groupCourses) { var completeByDate = groupCourse.CompleteWithinMonths != 0 ? (DateTime?)clockService.UtcNow.AddMonths(groupCourse.CompleteWithinMonths) : null; var candidateProgressOnCourse = progressDataService.GetDelegateProgressForCourse( delegateAccountWithOldDetails.Id, groupCourse.CustomisationId ); var existingRecordsToUpdate = candidateProgressOnCourse.Where(ProgressShouldBeUpdatedOnEnrolment).ToList(); if (existingRecordsToUpdate.Any()) { foreach (var progressRecord in existingRecordsToUpdate) { var updatedSupervisorAdminId = groupCourse.SupervisorAdminId > 0 ? groupCourse.SupervisorAdminId.Value : progressRecord.SupervisorAdminId; progressDataService.UpdateProgressSupervisorAndCompleteByDate( progressRecord.ProgressId, updatedSupervisorAdminId, completeByDate ); } } else { var newProgressId = progressDataService.CreateNewDelegateProgress( delegateAccountWithOldDetails.Id, groupCourse.CustomisationId, groupCourse.CurrentVersion, clockService.UtcNow, 3, addedByAdminId, completeByDate, groupCourse.SupervisorAdminId ?? 0 ); var tutorialsForCourse = tutorialContentDataService.GetTutorialIdsForCourse(groupCourse.CustomisationId); foreach (var tutorial in tutorialsForCourse) { progressDataService.CreateNewAspProgress(tutorial, newProgressId); } } if (newDetails.Email != null) { var fullName = newDetails.FirstName + " " + newDetails.Surname; var email = BuildEnrolmentEmail(newDetails.Email, fullName, groupCourse, completeByDate); emailService.ScheduleEmail(email, AddedByProcess); } } }