//DELETE GOOD FROM USER'S CART public JsonResult DeleteFromCart(string id, CartServiceResponse service) { try { var filter = Builders <Account> .Filter.Where(x => x._id == id); //ability to add more fields to filter var update = Builders <Account> .Update.PullFilter("cart", Builders <CartServiceResponse> .Filter.Eq(e => e._id, service._id)); _accounts.UpdateOne(filter, update); return(new JsonResult(new { status = 200, cart = _accounts.Find(account => account._id == id).FirstOrDefault().cart })); } catch (Exception e) { return(new JsonResult(new { status = 400, error = e.Message })); } }
//ADD GOOD TO USER'S CART public JsonResult AddToCart(string id, CartServiceRequest service) { try { var filter = Builders <Account> .Filter.Where(x => x._id == id); var res = new CartServiceResponse(); res._id = ObjectId.GenerateNewId().ToString(); res.name = service.name; res.price = service.price; res.serviceId = service._id; res.currentPrice = service.currentPrice; res.description = service.description; res.type = service.type; var update = Builders <Account> .Update.Push("cart", res); _accounts.UpdateOne(filter, update); return(new JsonResult(new { status = 201, cart = _accounts.Find(account => account._id == id).FirstOrDefault().cart })); } catch (Exception e) { return(new JsonResult(new { status = 400, error = e.Message })); } }