public VehicleModel GetByMakeAndModelCode(string makeCode, string modelCode)
 {
     var model = GetFromCache(makeCode, modelCode);
     if (model == null)
     {
         Vehicle vehicle = null;
         using (var context = new VehicleEntities())
         {
             vehicle = context.Vehicles.Include("Model")
                 .Include("Model.Make")
                 .FirstOrDefault(x => x.Model.ModelCode == modelCode && x.Model.MakeCode == makeCode);
         }
         if (vehicle == null)
         {
             throw new HttpResponseException(HttpStatusCode.NotFound);
         }
         model = new VehicleModel()
         {
             ImageUrl = vehicle.ImageUrl,
             Make = vehicle.Model.Make.MakeName,
             Model = vehicle.Model.ModelName,
             ProducedFromUtc = vehicle.ProducedFromUtc,
             ProducedToUtc = vehicle.ProducedToUtc
         };
         PutToCache(model, makeCode, modelCode);
     }
     return model;
 }
 private static void PutToCache(VehicleModel model, string makeCode, string modelCode)
 {
     var cached = new CachedVehicleModel()
     {
         Model = model,
         CacheKey = CachedVehicleModel.GetCacheKey(makeCode, modelCode)
     };
     var db = GetDatabase();
     var collection = db.GetCollection<CachedVehicleModel>("vehicles");
     collection.Save(cached);
 }