Esempio n. 1
0
        public static int Denomination2Int(CloudCoin.Denomination d)
        {
            switch (d)
            {
            case CloudCoin.Denomination.One: return(1);

            case CloudCoin.Denomination.Five: return(5);

            case CloudCoin.Denomination.Quarter: return(25);

            case CloudCoin.Denomination.Hundred: return(100);

            case CloudCoin.Denomination.KiloQuarter: return(250);

            default: return(0);
            }
        }
Esempio n. 2
0
        private string GetDenominations(CloudCoin.Denomination denomination)
        {
            switch (denomination)
            {
            case CloudCoin.Denomination.One:
                return("1");

            case CloudCoin.Denomination.Five:
                return("5");

            case CloudCoin.Denomination.Quarter:
                return("25");

            case CloudCoin.Denomination.Hundred:
                return("100");

            case CloudCoin.Denomination.KiloQuarter:
                return("250");
            }

            return("");
        }
Esempio n. 3
0
 public Shelf(Safe safe, CloudCoin.Denomination denom)
 {
     current      = safe;
     denomination = denom;
 }
            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 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