Пример #1
0
        public async Task <IActionResult> IssueCoin(IssueCoinRequest issueCoinRequest)
        {
            IssueCoin     iC   = new IssueCoin();
            Coin          coin = iC.Create(issueCoinRequest.IssuingAuthority, issueCoinRequest.CountryCode, issueCoinRequest.CurrencyCode, issueCoinRequest.PurposeCode, issueCoinRequest.Value, privateECKey, issueCoinRequest.HolderPublicKeys);
            MintDBContext db   = new MintDBContext();

            MintCoin mc = new MintCoin()
            {
                CountryCode      = coin.CountryCode,
                CurrencyCode     = coin.CurrencyCode,
                PurposeCode      = coin.PurposeCode,
                HolderHash       = coin.HolderHash,
                Id               = Guid.NewGuid(),
                IssueDate        = DateTime.UtcNow,
                IssuingAuthority = coin.IssuingAuthority,
                IssuingHash      = coin.IssuingHash,
                SerialNumber     = coin.SerialNumber,
                Value            = coin.Value,
                Holders          = new List <MintHolder>()
            };

            for (int i = 0; i < coin.Holders.Count; i++)
            {
                mc.Holders.Add(new MintHolder()
                {
                    Id = Guid.NewGuid(), PublicKey = coin.Holders[i].PublicKey
                });
            }

            await db.MintCoins.AddAsync(mc);

            await db.SaveChangesAsync();

            return(Ok(coin));
        }
Пример #2
0
        private static async Task <Coin> IssueCoin()
        {
            IssueCoinRequest icr = new IssueCoinRequest();

            icr.CountryCode      = "UK";
            icr.CurrencyCode     = "GBP";
            icr.IssuingAuthority = "Bank of Digital";
            icr.PurposeCode      = "General";
            icr.Value            = 10.00M;
            icr.HolderPublicKeys = new List <string>();
            icr.HolderPublicKeys.Add(publicECKey);

            using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://localhost:44341/api/Issue"))
            {
                request.Content = new StringContent(JsonConvert.SerializeObject(icr));
                request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
                request.Headers.Add("x-api-key", "86A5DFC6-0EB7-4249-B32A-366F2F8F9A51");

                HttpResponseMessage response = null;

                try
                {
                    using (HttpClient client = new HttpClient())
                        response = await client.SendAsync(request);

                    if (response != null)
                    {
                        return(JsonConvert.DeserializeObject <Coin>(await response.Content.ReadAsStringAsync()));
                    }
                    else
                    {
                        throw new Exception();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    throw ex;
                }
            }
        }