Example #1
0
        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");
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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());
        }
Example #6
0
        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());
        }