コード例 #1
0
ファイル: AccountDetails.cs プロジェクト: akil03/bx
 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();
                 }
             }
         }
     });
 }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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
                    );
            }
        }
コード例 #4
0
        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);
                }
            }
        }