public void InsertCrimeLocalizationItem(Guid crimeId, CrimeLocalization crimeLocalization) { var crime = _col.Find(c => c.Id == crimeId).FirstOrDefault(); if (crime == null) { crime = new Crime { Id = crimeId, ListCrimeLocalizations = new List <CrimeLocalization> { crimeLocalization } }; _col.InsertOne(crime); } else { var cartItemFromDb = crime.ListCrimeLocalizations.FirstOrDefault(ci => ci.Id == crimeLocalization.Id); if (cartItemFromDb == null) { crime.ListCrimeLocalizations.Add(crimeLocalization); } else { cartItemFromDb.Quantity = cartItemFromDb.Quantity + crimeLocalization.Quantity; } var update = Builders <Crime> .Update .Set(c => c.ListCrimeLocalizations, crime.ListCrimeLocalizations); _col.UpdateOne(c => c.Id == crimeId, update); } }
public void UpdateCrimeLocalizationItem(Guid crimeId, CrimeLocalization catalogItem) { var cart = _col.Find(c => c.Id == crimeId).FirstOrDefault(); if (cart != null) { cart.ListCrimeLocalizations.RemoveAll(ci => ci.Id == catalogItem.Id); cart.ListCrimeLocalizations.Add(catalogItem); var update = Builders <Crime> .Update .Set(c => c.ListCrimeLocalizations, cart.ListCrimeLocalizations); _col.UpdateOne(c => c.Id == crimeId, update); } }
public ActionResult Put([FromQuery(Name = "crimeId")] Guid crimeId, [FromBody] CrimeLocalization cartItem) { _crimeRepository.UpdateCrimeLocalizationItem(crimeId, cartItem); return(Ok()); }