public async void Post([FromBody] ShareOwner shareowner) { if (shareowner != null) { using (var client = new HttpClient()) { var baseUri = "https://itonk-grp2.firebaseio.com/shareowners.json"; client.BaseAddress = new Uri(baseUri); client.DefaultRequestHeaders.Accept.Clear(); //get all shareowners var allOwners = await client.GetAsync(baseUri); if (allOwners.IsSuccessStatusCode) { //var temp = JsonConvert.DeserializeObject<Dictionary<string,List<ShareOwner>>>(await allOwners.Content.ReadAsStringAsync()); string ownercontent = await allOwners.Content.ReadAsStringAsync(); var owners = JsonConvert.DeserializeObject <List <ShareOwner> >(ownercontent); owners.Add(shareowner); var jsonShare = JsonConvert.SerializeObject(owners); Console.WriteLine(jsonShare); var content = new StringContent(jsonShare.ToString(), Encoding.UTF8, "application/json"); var response = await client.PutAsync(baseUri, content); this._fbLogger.Log(TAG + "SUCCESS in POST: api/shareowner"); } } } else { this._fbLogger.Log(TAG + "FAILURE in POST: api/shareowner"); } }
private async Task <bool> buy(ShareOwner shareowner) { if (shareowner != null) { using (var client = new HttpClient()) { var host = Environment.GetEnvironmentVariable("BROKER_SERVICE_HOST"); var port = Environment.GetEnvironmentVariable("BROKER_SERVICE_PORT"); var endpoint = new Uri("http://" + host + ":" + port); //get all shareowners var jsonShareOwner = JsonConvert.SerializeObject(shareowner); var content = new StringContent(jsonShareOwner, Encoding.UTF8, "application/json"); var allOwners = await client.PostAsync(endpoint + "Buyers/Buy", content); if (allOwners.IsSuccessStatusCode) { return(true); } } } return(false); }
public async Task <bool> PostAsync([FromQuery] string stockname, [FromQuery] int amount, [FromQuery] int customerid) { //Could check customerID in some sort of DB to get more info var shareowner = new ShareOwner() { Name = "Requester", CustomerId = customerid, Stocks = new List <Stock>() { new Stock() { StockId = getStockId(stockname), Name = stockname, Amount = amount, Price = 0 } } }; if (await buy(shareowner)) { await payTobinTax(shareowner); return(true); } return(false); }
private async Task <ShareOwner> payTobinTax(ShareOwner shareowner) { using (var client = new HttpClient()){ var host = Environment.GetEnvironmentVariable("TOBINTAXER_SERVICE_HOST"); var port = Environment.GetEnvironmentVariable("TOBINTAXER_SERVICE_PORT"); var endpoint = new Uri("http://" + host + ":" + port); var response = await client.PostAsync(endpoint + "TobinTaxer/Tax", new StringContent(shareowner.Stocks.FirstOrDefault().Price.ToString())); if (response.IsSuccessStatusCode) { var newPrice = Double.Parse(await response.Content.ReadAsStringAsync()); shareowner.Stocks.FirstOrDefault().Price = newPrice; return(shareowner); } return(null); } }
public async Task <IActionResult> Update(long id, [FromBody] ShareOwner shareowner) { if (shareowner == null) { return(BadRequest()); } var owners = await Get(); ShareOwner toUpdate; foreach (var owner in owners) { /*if(owner.Value.CustomerId == id) * { * toUpdate = owner.Value; * }else{ * return BadRequest(); * }*/ } using (var client = new HttpClient()) { var baseUri = "https://itonk-grp2.firebaseio.com/shareowners.json/"; client.BaseAddress = new Uri(baseUri); client.DefaultRequestHeaders.Accept.Clear(); var jsonShare = JsonConvert.SerializeObject(shareowner); var content = new StringContent(jsonShare.ToString(), Encoding.UTF8, "application/json"); var response = await client.PutAsync(baseUri, content); } return(new NoContentResult()); }
public async Task <IActionResult> Buy([FromBody] ShareOwner buyer) { List <Seller> newSellers = new List <Seller>() { new Seller() { Name = "Peter", SellerId = 1001, CustomerId = 2001, Stocks = new List <Stock>() { new Stock() { StockId = 11, Name = "Shit", Price = 10.0, Amount = 10 } } } }; using (StaticHttpClient client = new StaticHttpClient()) { var host = Environment.GetEnvironmentVariable("PSOC_SERVICE_HOST"); var port = Environment.GetEnvironmentVariable("PSOC_SERVICE_PORT"); var newSellersJson = JsonConvert.SerializeObject(newSellers); await client.PutAsync("https://itonk-grp2.firebaseio.com/Broker/Seller.json", newSellers); List <Buyer> buyers = new List <Buyer>() { new Buyer() { BuyerId = 0, Name = buyer.Name, CustomerId = buyer.CustomerId, Stocks = buyer.Stocks } }; var record = await client.PutAsync("https://itonk-grp2.firebaseio.com/Broker/Buyer.json", buyers); string stocks = await client.GetAsync("https://itonk-grp2.firebaseio.com/Broker/Seller.json"); var sellers = JsonConvert.DeserializeObject <List <Seller> >(stocks); ShareOwner newOwner = null; int wantedAmount = 0; Stock stockToRemove = null; Seller soldBy = null; foreach (var seller in sellers) { foreach (var stock in seller.Stocks) { foreach (var requestedStock in buyer.Stocks) { //You can only buy 1 stock at a time - will be set multiple times, but who cares really? wantedAmount = requestedStock.Amount; if (stock.Name == requestedStock.Name) { newOwner = new ShareOwner() { Name = buyer.Name, CustomerId = buyer.CustomerId, Stocks = new List <Stock>() { stock } }; soldBy = seller; stockToRemove = stock; break; } } } } if (soldBy != null && soldBy.Stocks != null && stockToRemove != null) { soldBy.Stocks.Remove(stockToRemove); } await client.PutAsync("https://itonk-grp2.firebaseio.com/Broker/Seller.json", sellers); // post to Shareowner if (newOwner != null) { //await client.PostAsync(host + port + "/api/shareowner",newOwner); } else { return(BadRequest()); } //await client.PostAsync() // Post to Buyer } return(Ok()); }