public IHttpActionResult PostUSSDStock(USSDStockBinding stockModel)
        {
           ApplicationUser appuser = _userManager.FindById(User.Identity.GetUserId());
            Product product = (from pr in db.Products
                                     where pr.Code == stockModel.ProductCode
                                     select pr).FirstOrDefault();
            Unit unit = (from u in db.Units
                                where u.Code == stockModel.UnitCode
                         select u).FirstOrDefault();  
            Place place = (from pl in db.Places
                                 where pl.Code == stockModel.LocationCode
                           select pl).FirstOrDefault();

            if (product == null || unit == null || place == null) {
                return NotFound();
            }
            
            Stock stock = new Stock()
            {
                Product = product,
                Unit = unit,
                PricePerUnit = stockModel.PricePerUnit,
                ExpiresAt = DateTime.Now.AddDays(stockModel.ExpiresDays),
                Qty = stockModel.Qty,
                GeoPoint = new GeoPoint()
                {
                    Latitude = place.Latitude,
                    Longitude = place.Longitude,
                    Address = place.Name,
                    Town = "",
                    State = "",
                    Country = ""
                },
                User = appuser
            };

            db.Stocks.Add(stock);
            db.SaveChanges();

            return Ok(stock);
        }
        public async Task<IHttpActionResult> PostStock(StockBinding stockModel)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            ApplicationUser appuser = await _userManager.FindByIdAsync(User.Identity.GetUserId());
            var stock = new Stock()
            {
                Product = await db.Products.FindAsync(stockModel.ProductId),
                Unit = await db.Units.FindAsync(stockModel.UnitId),
                PricePerUnit = stockModel.PricePerUnit,
                ExpiresAt = stockModel.ExpiresAt,
                Qty = stockModel.Qty,
                GeoPoint = new GeoPoint()
                {
                    Latitude = stockModel.GeoPoint.Latitude,
                    Longitude = stockModel.GeoPoint.Longitude,
                    Address = stockModel.GeoPoint.Address,
                    Town = stockModel.GeoPoint.Town,
                    State = stockModel.GeoPoint.State,
                    Country = stockModel.GeoPoint.Country
                },
                User = appuser
            };

            db.Stocks.Add(stock);
            await db.SaveChangesAsync();

            return CreatedAtRoute("DefaultApi", new { id = stock.Id }, stock);
        }