private IEnumerator RequestMissionData()
        {
            ProgressDialog progressDialog = ProgressDialog.Create("Fetching Missions");

            using (UnityWebRequest request = UnityWebRequest.Get(WebConfig.webAPI + "mission/get_missions.php"))
            {
                progressDialog.SetWebRequest(request);

                yield return(request.SendWebRequest());

                string error = WebConfig.GetErrorString(request);

                if (string.IsNullOrEmpty(error))
                {
                    // Success
                    MissionResponse response = MissionResponse.FromJson(request.downloadHandler.text);
                    m_Missions = response.missions;

                    PopulateMissions(m_MissionFilter);
                }
                else
                {
                    // Failure
                    Debug.Log(error);
                    InfoDialog.Create("", error.ToString());
                }
            }

            progressDialog.Close();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Find the closest missing to a given address
        /// </summary>
        /// <param name="originAddress"></param>
        /// <returns></returns>
        public async Task <(MissionResponse, double)> FindClosestMission(string originAddress)
        {
            double  smallestDistance = 0;
            Mission mission          = null;

            //Get all missions
            List <Mission> missions = await _missionRepository.GetMissions();

            //Create Task<HttpResponseMessage> for each API call
            List <Task <HttpResponseMessage> > responseTasks = await GetResponseTasks(missions, originAddress);

            try
            {
                //Run API calls in parallel
                HttpResponseMessage[] responses = await Task.WhenAll(responseTasks);

                //Create Task<string> for each response.Content
                List <Task <string> > contentTasks = GetContentTasks(responses);

                //Get response.Content in parallel
                string[] contents = await Task.WhenAll(contentTasks);

                //Get the closest mission and the distance
                (mission, smallestDistance) = GetClosestMission(missions, contents);
            }
            catch (Exception ex)
            {
                //TODO:add logs here
            }

            MissionResponse missionResponse = _mapper.Map <MissionResponse>(mission);

            return(missionResponse, smallestDistance);
        }
Ejemplo n.º 3
0
    public static void UpdateMission(string json)
    {
        if (mission != null)
        {
            JsonUtility.FromJsonOverwrite(json, mission);
        }
        else
        {
            mission = JsonUtility.FromJson <Mission>(json);
        }

        missionResponse = new MissionResponse();
    }
Ejemplo n.º 4
0
    public static WWW SendMissionResponse(Mission mission, MissionResponse missionResponse)
    {
        WWWForm responseForm = new WWWForm();

        if (missionResponse.user_id != 0)
        {
            responseForm.AddField("user_id", missionResponse.user_id);
            Debug.Log("User ID: " + missionResponse.user_id);
        }
        if (missionResponse.group_id != 0)
        {
            responseForm.AddField("group_id", missionResponse.group_id);
            Debug.Log("Group ID: " + missionResponse.group_id);
        }

        responseForm.AddField("answerable_id", missionResponse.mission_id);
        responseForm.AddField("answerable_type", missionResponse.type);

        Debug.Log("ID: " + missionResponse.mission_id + " / Type: " + missionResponse.type);

        if (mission.gps_enabled)
        {
            Debug.Log("Coordinates: " + missionResponse.coordinates);
            responseForm.AddField("coordinates", missionResponse.coordinates);
        }

        if (mission.text_enabled)
        {
            Debug.Log("Text: '" + missionResponse.text + "'");
            responseForm.AddField("text", missionResponse.text);
        }

        if (mission.photo_enabled)
        {
            Debug.Log("Photo Ready");
            responseForm.AddBinaryData("photo", missionResponse.photo, "Photo.png", "image/png");
        }

        if (mission.audio_enabled)
        {
            Debug.Log("Audio Ready");
            responseForm.AddBinaryData("audio", missionResponse.audio, "voice.wav", "audio/wav");
        }

        WebAPI.apiPlace = "/answer/create/";

        return(WebAPI.Post(responseForm));
    }
Ejemplo n.º 5
0
 public static void UpdateMission(Mission newMission)
 {
     mission         = newMission;
     missionResponse = new MissionResponse();
 }