예제 #1
0
        private async void SaveAndQuit()
        {
            GameObject.Find("Canvas").transform.Find("SavingBgPanel").gameObject.SetActive(true);

            Pacient.Loaded.CalibrationManoDone = Pacient.Loaded.IsCalibrationManoDone;

            var pacientSendDto  = Pacient.MapToPacientSendDto();
            var responsePacient = await DataManager.Instance.UpdatePacient(pacientSendDto);

            var responseCalibration = await DataManager.Instance.SaveCalibrationOverview(_calibrationOverviewSendDto);

            GameObject.Find("Canvas").transform.Find("SavingBgPanel").gameObject.SetActive(false);

            if (responsePacient.ApiResponse == null)
            {
                SysMessage.Info("Erro ao atualizar os dados do paciente na nuvem!\n Os dados poderão ser enviados posteriormente..");
            }

            if (responseCalibration.ApiResponse == null)
            {
                SysMessage.Info("Erro salvar os dados de calibração na nuvem!\n Os dados poderão ser enviados posteriormente..");
            }

            FindObjectOfType <ManoLogger>().StopLogging();
            ReturnToMainMenu();
        }
예제 #2
0
        private async void LogPlaySession()
        {
            //TODO: A responsabilidade do logger não é de bloquear e mostrar a tela de salvamento, porém o refatoramento a ser feito é muito grande... Deixa para depois
            GameObject.Find("Canvas").transform.Find("SavingBgPanel").gameObject.SetActive(true);

            if (StageModel.Loaded.Id == Pacient.Loaded.UnlockedLevels)
            {
                if (scr.Result == GameResult.Success)
                {
                    Pacient.Loaded.UnlockedLevels++;
                }
                else
                {
                    if (scr.Score < scr.MaxScore * 0.3f)
                    {
                        Pacient.Loaded.UnlockedLevels--;
                    }

                    if (Pacient.Loaded.UnlockedLevels <= 0)
                    {
                        Pacient.Loaded.UnlockedLevels = 1;
                    }
                }
            }

            Pacient.Loaded.PlaySessionsDone++;
            Pacient.Loaded.AccumulatedScore += scr.Score;

            var pacientSendDto = Pacient.MapToPacientSendDto();

            var responsePacient = await DataManager.Instance.UpdatePacient(pacientSendDto);

            if (responsePacient.ApiResponse == null)
            {
                SysMessage.Info("Erro ao atualizar o paciente na nuvem!\n Os dados poderão ser enviados posteriormente.");
            }

            Debug.Log($"Deu update no Paciente");

            var plataformOverviewSendDto = new PlataformOverviewSendDto
            {
                Duration            = FindObjectOfType <StageManager>().Duration,
                Result              = scr.Result,
                StageId             = StageModel.Loaded.Id,
                Phase               = StageModel.Loaded.Phase,
                Level               = StageModel.Loaded.Level,
                RelaxTimeSpawned    = spwn.RelaxTimeSpawned,
                Score               = scr.Score,
                MaxScore            = scr.MaxScore,
                ScoreRatio          = scr.Score / scr.MaxScore,
                TargetsSpawned      = spwn.TargetsSucceeded + spwn.TargetsFailed,
                TargetsSuccess      = spwn.TargetsSucceeded,
                TargetsInsSuccess   = spwn.TargetsInsSucceeded,
                TargetsExpSuccess   = spwn.TargetsExpSucceeded,
                TargetsFails        = spwn.TargetsFailed,
                TargetsInsFail      = spwn.TargetsInsFailed,
                TargetsExpFail      = spwn.TargetsExpFailed,
                ObstaclesSpawned    = spwn.ObstaclesSucceeded + spwn.ObstaclesFailed,
                ObstaclesSuccess    = spwn.ObstaclesSucceeded,
                ObstaclesInsSuccess = spwn.ObstaclesInsSucceeded,
                ObstaclesExpSuccess = spwn.ObstaclesExpSucceeded,
                ObstaclesFail       = spwn.ObstaclesFailed,
                ObstaclesInsFail    = spwn.ObstaclesInsFailed,
                ObstaclesExpFail    = spwn.ObstaclesExpFailed,
                PlayerHp            = plr.HeartPoins,
                PacientId           = Pacient.Loaded.IdApi,
                PlayStart           = recordStart,
                PlayFinish          = recordStop,
                FlowDataDevices     = new List <FlowDataDevice>()
            };


            if (scp.IsConnected) // Se PITACO conectado
            {
                Debug.Log("PlatformLogger - Device: Pitaco.");
                plataformOverviewSendDto.FlowDataDevices.Add(_pitacoLogger.flowDataDevice);
            }
            else
            {
                if (scm.IsConnected) // Se MANO conectado
                {
                    Debug.Log("PlatformLogger - Device: Mano.");
                    plataformOverviewSendDto.FlowDataDevices.Add(_manoLogger.flowDataDevice);
                }
                else
                {
                    if (scc.IsConnected) // Se CINTA conectada
                    {
                        Debug.Log("PlatformLogger - Device: Cinta.");
                        plataformOverviewSendDto.FlowDataDevices.Add(_cintaLogger.flowDataDevice);
                    }
                }
            }

            if (sco.IsConnected) // Se OXÍMETRO conectado
            {
                Debug.Log("PlatformLogger - Device: Oxímetro.");
                plataformOverviewSendDto.FlowDataDevices.Add(_oximetroLogger.flowDataDevice);
            }


            var plataformResponse = await DataManager.Instance.SavePlataformOverview(plataformOverviewSendDto);

            if (plataformResponse.ApiResponse == null)
            {
                SysMessage.Info("Erro ao salvar dados da plataforma na nuvem!\n Os dados poderão ser enviados posteriormente.");
            }

            GameObject.Find("Canvas").transform.Find("SavingBgPanel").gameObject.SetActive(false);

            GameObject.Find("Canvas").transform.Find("Result Panel").gameObject.SetActive(true);
        }