예제 #1
0
        public ActionResult <Menu> CreateMenuItem(int id, [FromForm] EditMenuDto dto)
        {
            var menu = new Menu
            {
                RestaurantId = id,
                CategoryId   = dto.CategoryId,
                Description  = dto.Description,
                Name         = dto.Name,
                Price        = dto.Price,
            };

            if (dto.Image != null)
            {
                var fileName = Path.GetFileName(dto.Image.FileName);
                var poster   = new Poster
                {
                    FileExtension = Path.GetExtension(fileName),
                    Name          = dto.Image.FileName,
                    ContentType   = dto.Image.ContentType,
                    Size          = dto.Image.Length
                };
                using (var memoryStream = new MemoryStream())
                {
                    dto.Image.CopyTo(memoryStream);
                    poster.BinaryData = memoryStream.ToArray();
                }
                menu.Poster = poster;
            }

            _context.Menus.Add(menu);
            _context.SaveChanges();
            return(GetMenuItem(menu.Id));
        }
예제 #2
0
        public ActionResult <Menu> EditMenuItem(int menuId, [FromForm] EditMenuDto dto)
        {
            var menu = _context.Menus
                       .Include(x => x.Poster)
                       .SingleOrDefault(x => x.Id == menuId);

            if (menu == null)
            {
                return(NotFound());
            }

            menu.CategoryId  = dto.CategoryId;
            menu.Description = dto.Description;
            menu.Name        = dto.Name;
            menu.Price       = dto.Price;

            if (dto.Image != null)
            {
                if (menu.Poster == null)
                {
                    menu.Poster = new Poster();
                }

                var fileName = Path.GetFileName(dto.Image.FileName);
                menu.Poster.FileExtension = Path.GetExtension(fileName);
                menu.Poster.Name          = dto.Image.FileName;
                menu.Poster.ContentType   = dto.Image.ContentType;
                menu.Poster.Size          = dto.Image.Length;

                using (var memoryStream = new MemoryStream())
                {
                    dto.Image.CopyTo(memoryStream);
                    menu.Poster.BinaryData = memoryStream.ToArray();
                }
            }
            _context.SaveChanges();
            return(GetMenuItem(menu.Id));
        }