public ActionResult AddPushpin(int id) { var viewModel = new AddPushpinViewModel { CorkboardId = id, CorkboardTitle = corkboardDbContext.Corkboards.SingleOrDefault(cid => cid.Cid == id).Title }; return(View(viewModel)); }
public ActionResult AddPushpin(AddPushpinViewModel pushpinDetails, int id) { Uri uriResult; bool check = IsImageUrl(pushpinDetails.Url); if (Uri.IsWellFormedUriString(pushpinDetails.Url, UriKind.Absolute) && check) { if (ModelState.IsValid) { using (pushpinDbContext) { Pushpin pushpin = new Pushpin(); pushpin.CorkboardId = id; pushpin.Url = pushpinDetails.Url; pushpin.Description = pushpinDetails.Description; pushpin.Tags = pushpinDetails.Tags; pushpin.DateTime = DateTime.Now; Corkboard corkboardInDb = corkboardDbContext.Corkboards.Where(query => query.Cid.Equals(id)).SingleOrDefault(); corkboardInDb.DateTime = DateTime.Now; pushpinDbContext.Pushpins.Add(pushpin); pushpinDbContext.SaveChanges(); corkboardDbContext.SaveChanges(); } } else { ModelState.AddModelError("Failure", "Fill in the right details"); return(View("AddPushpin", pushpinDetails)); } } else if (Uri.TryCreate(pushpinDetails.Url, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps) && check) { if (ModelState.IsValid) { using (pushpinDbContext) { Pushpin pushpin = new Pushpin(); pushpin.CorkboardId = id; pushpin.Url = pushpinDetails.Url; pushpin.Description = pushpinDetails.Description; pushpin.Tags = pushpinDetails.Tags; pushpin.DateTime = DateTime.Now; var corkboardInDb = corkboardDbContext.Corkboards.SingleOrDefault(c => c.Cid == id); corkboardInDb.DateTime = DateTime.Now; pushpinDbContext.Pushpins.Add(pushpin); pushpinDbContext.SaveChanges(); corkboardDbContext.SaveChanges(); } } else { ModelState.AddModelError("Failure", "Fill in the right details"); return(View("AddPushpin", pushpinDetails)); } } else { ModelState.AddModelError("Failure", "Enter a valid http or https url"); return(View("AddPushpin", pushpinDetails)); } ViewBag.Message = "New Pushpin has been added saved"; return(RedirectToAction("ViewCorkboard", "CorkBoard", new { id = id })); }