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)); }
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; } } }