public async static Task <GetTicketResponse> GetTicket(string TicketID) { string api = baseURI + "api/ticket/posGetTicket?ticketid=" + TicketID; try { using (var httpClient = new HttpClient()) { try { var httpResponse = await httpClient.GetAsync(api); if (httpResponse.Content != null) { string responseContent = await httpResponse.Content.ReadAsStringAsync(); GetTicketResponse response = JsonConvert.DeserializeObject <GetTicketResponse>(responseContent); return(response); } else { throw new Exception(); } } catch { throw; } } } catch { throw; } }
public async Task <GetTicketResponse> GetTicket(string accessToken) { string url = $"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={accessToken}&type=jsapi"; GetTicketResponse response = await this._client.GetAsync <GetTicketResponse>(url, _logger); return(response); }
private async Task <GetTicketResponse[]> get_tickets(Node[] triad, String[] ans, int nn, int sn, CloudCoin.Denomination denomination) { GetTicketResponse[] returnTicketsStatus = new GetTicketResponse[3]; for (int i = 0; i < 3; i++) { int index = i; returnTicketsStatus[i] = await triad[index].getTicket(nn, sn, ans[index], denomination); } return(returnTicketsStatus); }//end get_tickets
private static void GetTicket(GetTicketResponse result) { AuthenticationInformation authenticationInformation = (AuthenticationInformation)result.UserState; if (!string.IsNullOrEmpty(result.Ticket) && result.Status == GetTicketStatus.Successful) { authenticationInformation.Status = AuthenticationStatus.GetTicketFinishedSuccessfully; authenticationInformation.Ticket = result.Ticket; } else { authenticationInformation.Status = AuthenticationStatus.GetTicketFailed; } authenticationInformation.CurrentOperationCompleted(authenticationInformation); }
internal async Task <GetTicketResponse> getTicket(int nn, int sn, String an, CloudCoin.Denomination d) { var client = new RestClient(); client.BaseUrl = BaseUri; var request = new RestRequest("get_ticket"); request.AddQueryParameter("nn", nn.ToString()); request.AddQueryParameter("sn", sn.ToString()); request.AddQueryParameter("an", an); request.AddQueryParameter("pan", an); request.AddQueryParameter("denomination", Utils.Denomination2Int(d).ToString()); request.Timeout = 5000; GetTicketResponse getTicketResult = new GetTicketResponse(); return(await Task.Run <GetTicketResponse>(() => { Stopwatch sw = new Stopwatch(); sw.Start(); try { var response = client.Execute(request); getTicketResult = JsonConvert.DeserializeObject <GetTicketResponse>(response.Content); } catch (JsonException e) { getTicketResult = new GetTicketResponse(Name, sn, "error", "The server does not respond or returns invalid data", DateTime.Now.ToString()); } getTicketResult = getTicketResult ?? new GetTicketResponse(Name, sn, "Network problem", "Node not found", DateTime.Now.ToString()); if (getTicketResult.ErrorException != null) { getTicketResult = new GetTicketResponse(Name, sn, "Network problem", "Problems with network connection", DateTime.Now.ToString()); } sw.Stop(); getTicketResult.responseTime = sw.Elapsed; Logger.Write("GetTicket request for coin: " + sn + " at node " + this.Number + ", timeout " + request.Timeout + " returned '" + getTicketResult.status + "' with message '" + getTicketResult.message + "' in " + sw.ElapsedMilliseconds + "ms.", Logger.Level.Normal); return getTicketResult; })); }//end get ticket
private void GetTicketCompletedEx(GetTicketResponse response) { if (response.Status == GetTicketStatus.Successful) { _ticket = response.Ticket; if (GetTicketSucceeded != null) { GetTicketSucceeded(response.Ticket); } } else { if (GetTicketFailed != null) { GetTicketFailed(); } } }
private void GetTicketCompleted(GetTicketResponse response) { if (response.Status == GetTicketStatus.Successful) { _ticket = response.Ticket; string url = string.Format("http://www.box.net/api/1.0/auth/{0}", response.Ticket); //BrowserLauncher.OpenUrl(url); ShowBrowserInDialog(url); } }
private async Task <ObservableStatus> ProcessFixingGUID(int guid_id, CloudCoin returnCoin, int coinindex) { fixer = new FixitHelper(guid_id, returnCoin.an); GetTicketResponse[] ticketStatus = new GetTicketResponse[3]; ObservableStatus result = new ObservableStatus(); int corner = 1; while (!fixer.finnished) { onCoinFixProcessing(new CoinFixProcessingEventArgs(coinindex, guid_id, corner)); Logger.Write("Fixing coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ".", Logger.Level.Normal); string[] trustedServerAns = new string[] { returnCoin.an[fixer.currentTriad[0].Number], returnCoin.an[fixer.currentTriad[1].Number], returnCoin.an[fixer.currentTriad[2].Number] }; ticketStatus = await get_tickets(fixer.currentTriad, trustedServerAns, returnCoin.nn, returnCoin.sn, returnCoin.denomination); // See if there are errors in the tickets if (ticketStatus[0].status != "ticket" || ticketStatus[1].status != "ticket" || ticketStatus[2].status != "ticket") {// No tickets, go to next triad corner Logger.Write("Fixing coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". There is no three tickets from triad", Logger.Level.Normal); corner++; fixer.setCornerToCheck(corner); } else {// Has three good tickets Logger.Write("Fixing coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". We have three tickets. Going to fix.", Logger.Level.Normal); var fff = await Instance.NodesArray[guid_id].fix(fixer.currentTriad, ticketStatus[0].message, ticketStatus[1].message, ticketStatus[2].message, returnCoin.pans[guid_id], returnCoin.sn); if (fff.status == "success") // the guid IS recovered!!! { Logger.Write("Coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". Fixed!.", Logger.Level.Normal); returnCoin.detectStatus[guid_id] = result.Status = CloudCoin.raidaNodeResponse.pass; onCoinFixFinished(new CoinFixFinishedEventArgs(coinindex, guid_id, result.Status)); returnCoin.an[guid_id] = returnCoin.pans[guid_id]; fixer.finnished = true; return(result); } else if (fff.status == "fail") { // command failed, need to try another corner Logger.Write("Coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". Failed, trying another corner...", Logger.Level.Normal); corner++; fixer.setCornerToCheck(corner); returnCoin.detectStatus[guid_id] = CloudCoin.raidaNodeResponse.fail; } else if (fff.status == "error") { Logger.Write("Coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". Error, trying another corner....", Logger.Level.Normal); corner++; fixer.setCornerToCheck(corner); returnCoin.detectStatus[guid_id] = CloudCoin.raidaNodeResponse.error; } else { Logger.Write("Coin " + returnCoin.sn + ", node " + guid_id + ", corner " + corner + ". Error, trying another corner....", Logger.Level.Normal); corner++; fixer.setCornerToCheck(corner); returnCoin.detectStatus[guid_id] = CloudCoin.raidaNodeResponse.error; } //end if else fix was successful } //end if else one of the tickts has an error. } //end while fixer not finnihsed. // the guid cannot be recovered! all corners checked Logger.Write("Coin " + returnCoin.sn + ", node " + guid_id + " was not fixed!", Logger.Level.Normal); result.Status = returnCoin.detectStatus[guid_id]; onCoinFixFinished(new CoinFixFinishedEventArgs(coinindex, guid_id, result.Status)); return(result); }
private void GetTicketCompleted(GetTicketResponse response) { if (response.Status == GetTicketStatus.Successful) { _ticket = response.Ticket; string url = "https://www.box.net/api/1.0/auth/"+ response.Ticket; BrowserLauncher.OpenUrl(url); } else { Exception error = response.Error ?? new ApplicationException(string.Format("Can't get an authorization ticket. Operation status is {0}", response.Status)); throw error; } }
private void GetTicketFinished(object sender, get_ticketCompletedEventArgs e) { object[] data = (object[]) e.UserState; OperationFinished<GetTicketResponse> getAuthenticationTicketCompleted = (OperationFinished<GetTicketResponse>)data[0]; GetTicketResponse response; if (e.Error != null) { response = new GetTicketResponse { Status = GetTicketStatus.Failed, UserState = data[1], Error = e.Error }; } else { GetTicketStatus status = StatusMessageParser.ParseGetTicketStatus(e.Result); Exception error = status == GetTicketStatus.Unknown ? new UnknownOperationStatusException(e.Result) : null; response = new GetTicketResponse { Status = status, Ticket = e.ticket, UserState = data[1], Error = error }; } getAuthenticationTicketCompleted(response); }