public ActionResult Create(PortfolioItemViewModel portfolioItemViewModel, HttpPostedFileBase Image) { if (Image != null) { string ImageName = System.IO.Path.GetFileName(Image.FileName); string path = System.IO.Path.Combine( Server.MapPath("~/Images/PortfolioItems"), ImageName); // file is uploaded Image.SaveAs(path); portfolioItemViewModel.Image = ImageName; } if (ModelState.IsValid) { var portfolioItem = new PortfolioItem { Title = portfolioItemViewModel.Title, Description = portfolioItemViewModel.Description, Image = portfolioItemViewModel.Image, ProjcetUrl = portfolioItemViewModel.ProjcetUrl, }; AddOrUpdateTags(portfolioItem, portfolioItemViewModel.Tags); db.PortfolioItems.Add(portfolioItem);; db.SaveChanges(); return RedirectToAction("Index"); } return View(portfolioItemViewModel); }
public static PortfolioItem ToDomainModel(this PortfolioItemViewModel portfolioItemViewModel) { var portfolioItem = new PortfolioItem(); portfolioItem.Title = portfolioItemViewModel.Title; portfolioItem.ID = portfolioItemViewModel.ID; portfolioItem.ProjcetUrl = portfolioItemViewModel.ProjcetUrl; portfolioItem.Image = portfolioItemViewModel.Image; return portfolioItem; }
private void AddOrUpdateTags(PortfolioItem portfolioItem, IEnumerable<AssignedTags> assignedTags) { if (assignedTags == null) return; if (portfolioItem.ID != 0) { foreach (var tag in portfolioItem.Tags.ToList()) { portfolioItem.Tags.Remove(tag); } foreach (var tag in assignedTags.Where(c => c.Assigned)) { portfolioItem.Tags.Add(db.Tags.Find(tag.ID)); } } else { // New user foreach (var assignedTag in assignedTags.Where(c => c.Assigned)) { var tag = new Tag { ID = assignedTag.ID }; db.Tags.Attach(tag); portfolioItem.Tags.Add(tag); } } }