public static UpdateCarViewModel ConvertToUpdateViewModel(this Car carDomain)
		{
			UpdateCarViewModel updateVm = new UpdateCarViewModel()
			{
				Id = carDomain.Id
				, DailyRentalFee = carDomain.DailyRentalFee
				, Make = carDomain.Make
				, NumberOfDoors = carDomain.NumberOfDoors
			};

			if (carDomain.CountriesAllowedIn != null && carDomain.CountriesAllowedIn.Count() > 0)
			{
				StringBuilder sb = new StringBuilder();
				for (int i = 0; i < carDomain.CountriesAllowedIn.Count(); i++)
				{
					sb.Append(carDomain.CountriesAllowedIn.ElementAt(i));
					if (i < carDomain.CountriesAllowedIn.Count() - 1)
					{
						sb.Append(";");
					}
				}
				updateVm.DelimitedListOfCountries = sb.ToString();
			}

			return updateVm;
		}
		public ActionResult Edit(UpdateCarViewModel updateCarViewModel)
		{
			if (ModelState.IsValid)
			{
				Car modifiedCar = updateCarViewModel.ConvertToDomain();				
				CarRentalContext.Cars.Save(modifiedCar);
				
				//or use the Update method:
				//CarRentalContext.Cars.Update(Query.EQ("_id", ObjectId.Parse(updateCarViewModel.Id)), Update.Replace(modifiedCar), UpdateFlags.Upsert);

				//some example code
				/*
				CarRentalContext.Cars.Update(Query.EQ("_id", ObjectId.Parse(updateCarViewModel.Id)), Update<Car>.Set(c => c.DailyRentalFee, 12));
				CarRentalContext.Cars.Update(Query.EQ("Make", "Ford"), Update<Car>.Set(c => c.DailyRentalFee, 2), UpdateFlags.Multi);
				
				FindAndModifyArgs args = new FindAndModifyArgs()
				{
					Query = Query.EQ("Make", "Ford")
					,Update = Update<Car>.Set(c => c.DailyRentalFee, 2),
					Upsert = false
					,SortBy = SortBy<Car>.Ascending(c => c.Id)
					,VersionReturned = FindAndModifyDocumentVersion.Modified
				};
				FindAndModifyResult res = CarRentalContext.Cars.FindAndModify(args);
				*/
				
				return RedirectToAction("Index");
			}
			return View(updateCarViewModel);
		}