public IActionResult Edit(int catId) { var userId = _userManager.GetUserId(User); var cat = _context.Cats .Include(c => c.Image) .SingleOrDefault(c => c.Id == catId && c.OwnerId == userId); if (cat == null || cat.IsDeleted) { return(NotFound()); } var breeds = _context.Breeds.ToList().OrderBy(b => b.Name); var viewModel = new CatFormViewModel { Breeds = new SelectList(breeds, "Id", "Name"), Heading = "Edit a Cat", BirthDateText = cat.BirthDate.ToString("dd/MM/yyyy"), DeathDateText = (cat.DeathDate == null) ? "" : ((DateTime)cat.DeathDate).ToString("dd/MM/yyyy"), BreedId = (byte)cat.BreedId, IsDeceased = cat.IsDeceased, Name = cat.Name, Weight = cat.Weight, // Image = TODO }; return(View("CatForm", viewModel)); // TODO - need to send to an edit version of the form, instead of create }
public IActionResult Create() { var breeds = _context.Breeds.ToList().OrderBy(b => b.Name); var viewModel = new CatFormViewModel { Breeds = new SelectList(breeds, "Id", "Name"), Heading = "Add a Cat" }; return(View("CatForm", viewModel)); }
public IActionResult Create(CatFormViewModel viewModel) { if (!ModelState.IsValid) { var breeds = _context.Breeds.ToList().OrderBy(b => b.Name); viewModel.Breeds = new SelectList(breeds, "Id", "Name"); return(View("CatForm", viewModel)); } var cat = new Cat { BirthDate = viewModel.GetBirthDate(), DeathDate = viewModel.GetDeathDate(), BreedId = (int)viewModel.BreedId, Name = char.ToUpper(viewModel.Name[0]) + viewModel.Name.Substring(1), OwnerId = _userManager.GetUserId(User), Weight = (double)viewModel.Weight, IsDeceased = viewModel.IsDeceased }; IFormFile uploadedImage = viewModel.Image; if (uploadedImage != null && uploadedImage.ContentType.ToLower().StartsWith("image/")) { MemoryStream ms = new MemoryStream(); uploadedImage.OpenReadStream().CopyTo(ms); System.Drawing.Image image = System.Drawing.Image.FromStream(ms); var imageEntity = new Image { Cat = cat, ContentType = uploadedImage.ContentType, Data = ms.ToArray(), Width = image.Width, Height = image.Height }; _context.Images.Add(imageEntity); } _context.Cats.Add(cat); _context.SaveChanges(); return(RedirectToAction("Index", "Home")); }