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