Example #1
0
        public IActionResult CreateItem(CreateItemViewModel item)
        {
            var dto = new CreateItemDTO();

            if (item.Create == true && item.Category != null && item.Name != null)
            {
                var file = Request.Form.Files.First();
                if (file != null)
                {
                    if (!Directory.Exists(Directory.GetCurrentDirectory() + "/wwwroot/images/items"))
                    {
                        Directory.CreateDirectory(Directory.GetCurrentDirectory() + "/wwwroot/images/items");
                    }
                    using (var fileStream = new FileStream(Directory.GetCurrentDirectory() + "/wwwroot/images/items/" + file.FileName, FileMode.Create))
                    {
                        file.CopyTo(fileStream);
                    }
                }
                foreach (var prop in item.GetType().GetProperties())
                {
                    if (prop.GetValue(item, null) != null)
                    {
                        if (dto.GetType().GetProperties().SingleOrDefault(x => x.Name == prop.Name) != null)
                        {
                            var propertyToModify = dto.GetType().GetProperties().SingleOrDefault(x => x.Name == prop.Name);
                            propertyToModify.SetValue(dto, prop.GetValue(item, null));
                        }
                    }
                }
                dto.PicturePath = file.FileName;
                this.itemService.CreateItem(dto);

                return(RedirectToAction("Index", "Home", new { message = "Termék sikeresen hozzáadva" }));
            }

            return(View(item));
        }