コード例 #1
0
ファイル: GameController.cs プロジェクト: aconit/quack-a-mole
        public string GetValues(int typeOfCode)
        {
            string    result   = "";
            QuackUser currUser = Session["QuackUser"] as QuackUser;

            if (currUser == null)
            {
                Result resObject = LogIn();
                if (resObject.Success)
                {
                    currUser             = JsonConvert.DeserializeObject <QuackUser>(resObject.Message);
                    Session["QuackUser"] = currUser;
                }
            }

            if (currUser.id != null && currUser.id.Length > 0)
            {
                Result measurementResult = ExecuteCode(currUser, typeOfCode);

                if (measurementResult.Success)
                {
                    Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(measurementResult.Message);
                    result = o["result"]["data"]["p"]["labels"].First.ToString();

                    // Delete
                    string expID = o["code"]["idCode"].ToString();
                    DeleteExperiment(expID, currUser);
                }
            }

            Debug.Write("result  " + result);
            return(result);
        }
コード例 #2
0
ファイル: GameController.cs プロジェクト: aconit/quack-a-mole
        public void DeleteExperiment(string experimentID, QuackUser currUser)
        {
            //DELETE https://quantumexperience.ng.bluemix.net/api/users/a3e5c196cb90688ba9a50dd7607999a6/codes/553c3398a4039e2b809cc6ec110e971e HTTP/1.1
            //Host: quantumexperience.ng.bluemix.net

            Result result  = new Result();
            string baseUrl = string.Format("/users/{0}/codes/{1}", currUser.userid, experimentID);

            System.Diagnostics.Debug.WriteLine("Deleteing to URL: " + baseUrl);
            result = GetAPIData(baseUrl, HttpMethod.Delete, null, currUser);
            if (result.Success)
            {
                Debug.WriteLine("Deleted.");
            }
            else
            {
                Debug.WriteLine("Failed: " + result.Message);
            }
        }
コード例 #3
0
ファイル: GameController.cs プロジェクト: aconit/quack-a-mole
        private Result GetAPIData(string urlRelativePath,
                                  HttpMethod httpMethod,
                                  HttpContent contentToSend, QuackUser currUser)
        {
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            Result result = new Result();


            if (currUser.ttl > 0 && httpMethod != HttpMethod.Delete)
            {
                urlRelativePath = urlRelativePath + "&access_token=" + currUser.id;
            }

            string url = _baseUrl + urlRelativePath;


            HttpRequestMessage request = new HttpRequestMessage(httpMethod, url);

            request.Content = contentToSend;
            if (currUser.ttl > 0)
            {
                request.Headers.Add("X-Access-Token", currUser.id);
            }
            using (HttpResponseMessage response = _client.SendAsync(request).Result)
                if (response.IsSuccessStatusCode)
                {
                    using (HttpContent content = response.Content)
                    {
                        result.Message = content.ReadAsStringAsync().Result;
                        result.Success = response.IsSuccessStatusCode;
                    }
                }
                else
                {
                    result.Message = response.ReasonPhrase;
                    result.Success = false;
                }
            return(result);
        }
コード例 #4
0
ファイル: GameController.cs プロジェクト: aconit/quack-a-mole
        public Result ExecuteCode(QuackUser currUser, int typeOfCode)
        {
            Result result = new Result();


            string url = string.Format("/codes/execute?shots={0}&deviceRunType={1}",
                                       _shots.ToString(),
                                       _deviceRunType
                                       );

            var kvp = new List <KeyValuePair <string, string> >();

            kvp.Add(new KeyValuePair <string, string>("qasm", GetCode(typeOfCode)));
            kvp.Add(new KeyValuePair <string, string>("codeType", _codeType));
            kvp.Add(new KeyValuePair <string, string>("name", string.Format("ExperimentID {0} ", System.Guid.NewGuid().ToString())));

            HttpContent content = new FormUrlEncodedContent(kvp);

            result = GetAPIData(url, HttpMethod.Post, content, currUser);

            return(result);
        }