public ActionResult DeleteDatasetElement(DatasetElementDeleteModel model) { ViewBag.MenuItem = CurrentMenuItem; var cancelRedirectUrl = (TempData["cancelRedirectUrl"] ?? string.Empty).ToString(); ViewBag.cancelRedirectUrl = cancelRedirectUrl; ArrayList errors = new ArrayList(); if (ModelState.IsValid) { var element = _unitOfWork.Repository <DatasetElement>().Queryable().SingleOrDefault(ds => ds.Id == model.DatasetElementId); try { ArrayList delete = new ArrayList(); delete.AddRange(element.DatasetRules.ToArray()); foreach (DatasetRule rule in delete) { _unitOfWork.Repository <DatasetRule>().Delete(rule); } _unitOfWork.Repository <Field>().Delete(element.Field); _unitOfWork.Repository <DatasetElement>().Delete(element); _unitOfWork.Complete(); } catch (DbUpdateException ex) { errors.Add("Unable to delete element. " + ex.Message); } if (errors.Count == 0) { HttpCookie cookie = new HttpCookie("PopUpMessage"); cookie.Value = "Dataset element deleted successfully"; Response.Cookies.Add(cookie); return(Redirect("/Admin/ManageDatasetElement.aspx")); } else { AddErrors(errors); } } return(View(model)); }
public ActionResult DeleteDatasetElement(long id, string cancelRedirectUrl) { ViewBag.MenuItem = CurrentMenuItem; TempData["cancelRedirectUrl"] = cancelRedirectUrl; ViewBag.CancelRedirectUrl = cancelRedirectUrl; var element = _unitOfWork.Repository <DatasetElement>().Queryable().SingleOrDefault(de => de.Id == id); var allowDelete = (_infrastuctureService.HasAssociatedData(element) == false); DatasetElementDeleteModel model = new DatasetElementDeleteModel() { DatasetElementId = element.Id, DatasetElementName = element.ElementName, AllowDelete = allowDelete }; ViewData.Model = model; ViewBag.Id = id; ViewBag.AlertMessage = allowDelete == false ? "Unable to delete this record as it has associated referential data...." : "You are about to delete this record. This action is not reversible...."; return(View()); }