예제 #1
0
        public JsonResult GetMenuItems(string country)
        {
            var restaurantKit = new RestaurantKit();
            var reader = restaurantKit.GetMenuReader(country);
            var menuItems = reader.Read(Server.MapPath("~/Content/FoodItemData"));
            var menuGenerator = restaurantKit.GetMenuGenerator(reader, menuItems);

            List<MenuItem> filteredMenuItems = new List<MenuItem>();
            filteredMenuItems.AddRange(
                menuGenerator.GetAllDayItems().Union(
                    menuGenerator.GetDinerItems().Union(
                        menuGenerator.GetEveningOnlyItems())));

            return Json(filteredMenuItems, JsonRequestBehavior.AllowGet);
        }
예제 #2
0
        public FileResult Download(string restaurantType, string downloadType, string country)
        {
            var restaurantKit = new RestaurantKit();
            var reader = restaurantKit.GetMenuReader(country);
            var menuItems = reader.Read(Server.MapPath("~/Content/FoodItemData"));
            var menuGenerator = restaurantKit.GetMenuGenerator(reader, menuItems);
            var filteredMenuItems = GetItemsByRestaurantType(menuGenerator, restaurantType);
            var formatter = restaurantKit.GetMenuFormatter(downloadType);
            var bytes  = formatter.GetDownloadBytes(filteredMenuItems);

            Response.ContentType = GetContentType(downloadType);
            Response.AddHeader("Content-disposition", "attachment;filename=" + country + " " + restaurantType + "." + GetFileExtension(downloadType));
            Response.OutputStream.Write(bytes, 0, bytes.Length);
            Response.Flush();
            Response.End();

            return File(Response.OutputStream, MediaTypeNames.Application.Octet);
        }