Ejemplo n.º 1
0
 private void SetEvaluation(CaseEvaluation evaluation, Text[] Fields)
 {
     for (int i = 0; i < evaluation.EvaluationFields.Length; i++)
     {
         Fields[i].text = evaluation.EvaluationFields[i];
     }
 }
    private void SendEvaluation(InputField[] inputFields)
    {
        ScreenController.SwitchScreenToCompleteEvaluationLoading();

        // creates the case evaluation.
        CaseEvaluation caseEvaluation = new CaseEvaluation()
        {
            Id               = currentRoleplay.Id,
            User             = isClient ? currentRoleplay.UserA : currentRoleplay.UserB,
            EvaluationFields = new string[inputFields.Length]
        };

        for (int i = 0; i < inputFields.Length; i++)
        {
            caseEvaluation.EvaluationFields[i] = inputFields[i].text;
            inputFields[i].text = "";
        }

        // Sends the evaluation to the server.
        string         json = JsonUtility.ToJson(caseEvaluation);
        NetworkMessage evaluationMessage = new NetworkMessage(NetworkMessageType.TransmitEvaluationTest, Manager.ClientId, "", json);

        Manager.SendMessage(evaluationMessage);

        CompleteEvaluationController.RequestCompleteEvaluation(caseEvaluation.Id);
    }
Ejemplo n.º 3
0
    protected override void Update()
    {
        base.Update();

        if (UnityEngine.Input.GetKeyDown(UnityEngine.KeyCode.C) && UnityEngine.Application.isEditor)
        {
            Participant userA = new Participant("TesterA", "1.1.1.1", "devm_9874123");
            Participant userB = new Participant("TesterB", "1.1.1.1", "devm_651089");

            ConnectToServer(new NetworkMessage(NetworkMessageType.ConnectToServer, userA.Id, "", userA.Name)
            {
                SenderIP = userA.IP
            });
            ConnectToServer(new NetworkMessage(NetworkMessageType.ConnectToServer, userB.Id, "", userB.Name)
            {
                SenderIP = userB.IP
            });

            Framework.Storage.SaveLoad.Load("LastId", out string id);

            RoleplayModule module = (RoleplayModule)UnityEngine.Random.Range(0, 1 + (int)RoleplayModule.open_questions);

            Enqueue(new NetworkMessage(NetworkMessageType.Enqueue, userA.Id, "", module.ToString())
            {
                SenderIP = userA.IP
            });
            Enqueue(new NetworkMessage(NetworkMessageType.Enqueue, userB.Id, "", module.ToString())
            {
                SenderIP = userB.IP
            });

            CaseEvaluation caseEvaluationA = new CaseEvaluation()
            {
                User = userA, Id = id, EvaluationFields = new string[2] {
                    "", ""
                }
            };
            CaseEvaluation caseEvaluationB = new CaseEvaluation()
            {
                User = userB, Id = id, EvaluationFields = new string[2] {
                    "", ""
                }
            };

            TransmitEvaluationTest(new NetworkMessage(NetworkMessageType.TransmitEvaluationTest, userA.Id, "", Framework.Features.Json.JsonUtility.ToJson(caseEvaluationA))
            {
                SenderIP = userA.IP
            });
            TransmitEvaluationTest(new NetworkMessage(NetworkMessageType.TransmitEvaluationTest, userB.Id, "", Framework.Features.Json.JsonUtility.ToJson(caseEvaluationB))
            {
                SenderIP = userB.IP
            });
        }
    }
    public void OnEvaluationAcquired(string serializedEvaluation)
    {
        CaseEvaluation caseEvaluation = JsonUtility.FromJson <CaseEvaluation>(serializedEvaluation);

        string id = caseEvaluation.Id;

        if (acquiredEvaluations.ContainsKey(id))
        {
            GenerateCompleteEvaluation(id, caseEvaluation);
        }
        else
        {
            acquiredEvaluations.Add(id, caseEvaluation);
        }
    }
    private void GenerateCompleteEvaluation(string id, CaseEvaluation caseEvaluation)
    {
        // Removes the case from the dictionary.
        CaseEvaluation other = acquiredEvaluations[id];

        acquiredEvaluations.Remove(id);

        // Converts the stored roleplay to an object.
        string roleplayJson;
        string fileName = string.Format(RoleplaySaveName.Value, id);

        SaveLoad.Load(fileName, out roleplayJson);
        RoleplayDescription roleplayDescription = JsonUtility.FromJson <RoleplayDescription>(roleplayJson);

        // serialized the complete evaluation.
        bool isUserA = id == roleplayDescription.UserA.Id;
        CompleteCaseEvaluation completeCaseEvaluation = new CompleteCaseEvaluation()
        {
            RoleplayDescription = roleplayDescription,
            EvaluationUserA     = isUserA ? caseEvaluation : other,
            EvaluationUserB     = isUserA ? other : caseEvaluation,
            TimeStamp           = DateTime.Now.ToString()
        };

        string completeEvalJson = JsonUtility.ToJson(completeCaseEvaluation);

        SaveLoad.Save(completeEvalJson, string.Format(CompleteEvaluationName.Value, id));

        SendMessageTo(roleplayDescription.UserA, completeEvalJson);
        SendMessageTo(roleplayDescription.UserB, completeEvalJson);

        AddIdToUserLog(roleplayDescription.UserA.Id, id);
        AddIdToUserLog(roleplayDescription.UserB.Id, id);

        SocialManager.AddToRecentLog(roleplayDescription.UserA, roleplayDescription.UserB);
        SocialManager.AddToRecentLog(roleplayDescription.UserB, roleplayDescription.UserA);

        SaveLoad.Remove(fileName);
    }