public virtual async Task <JsonResult> EditPopup(T item) { var r = new JsonResultViewModel(); var keyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); var v = Digger.GetObjectValue(item, keyFieldName); if (v != null) { int.TryParse(v.ToString(), out _editId); if (_editId > 0) { var org = Repo.GetItem(_editId); var x = await TryUpdateModelAsync(org); OnEditSaveItem(org); if (Repo.Edit(org)) { r.Ok = true; if (!EditJsAction.IsEmpty()) { r.JsFunction = EditJsAction; } } else { r.Error = MvcLogger.GetErrorMessage(ModelState); } } } else { r.Error = "NOT FOUND"; } return(Json(r)); }
public virtual IActionResult Create(int keepEdit, T item) { OnCreateSaveItem(item); if (Repo.Create(item)) { OnAfterCreateSaveItem(item); if (keepEdit == 0) { return(CreateReturnListUrl.IsEmpty() ? (ActionResult)RedirectToAction("Index") : Redirect(CreateReturnListUrl)); } if (keepEdit == 1) { var keyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); var itemIdValue = Digger.GetObjectValue(item, keyFieldName); return(RedirectToAction("Edit", new { id = itemIdValue })); } return(CreateSaveAndCreateUrl.IsEmpty() ? (ActionResult)RedirectToAction("Create") : Redirect(CreateSaveAndCreateUrl)); } ViewBag.EditMode = false; ViewBag.CreateAction = CreateAction; ViewBag.Title = GetTitle(TitleType.Create); BuildCreateMenu(); OnErrorCreateSaveItem(item); ViewBag.PageMenu = PageMenu; return(View(PopupEditor ? ViewCreatePopup : ViewCreate, item)); }
public virtual IActionResult Edit(int id) { var item = Repo.GetItem(id); if (item == null) { return(NotFound()); } if (!OnEditCheck(item)) { return(NotFound()); } var _queryDictionary = QueryHelpers.ParseQuery(Request.QueryString.ToString()); var _queryItems = _queryDictionary.SelectMany(x => x.Value, (col, value) => new KeyValuePair <string, string>(col.Key, value)).ToList(); var gridItem = _queryItems.FirstOrDefault(d => d.Key == "grid"); var grid = ""; grid = gridItem.Value; ViewBag.EditMode = true; ViewBag.EditAction = EditAction; ViewBag.Title = GetTitle(TitleType.Editor); ViewBag.Grid = grid; BuildEditMenu(id); OnEditItem(item); ViewBag.KeyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); ViewBag.KeyFieldValue = id; ViewBag.PageMenu = PageMenu; return(View(PopupEditor ? ViewEditPopup : ViewEdit, item)); }
public virtual async Task <IActionResult> Edit(int keepEdit, T item) { if (!OnEditAuthCheck()) { return(new ForbidResult()); } var keyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); var v = Digger.GetObjectValue(item, keyFieldName); if (v != null) { int.TryParse(v.ToString(), out _editId); if (_editId > 0) { var org = await GetEditSaveItem(_editId); OnEditBeforeSaveItem(item, org); await TryUpdateModelAsync(org); if (OnEditSaveCheck(org)) { try { OnEditSaveItem(org); if (await Repo.EditAsync(org)) { OnAfterEditSaveItem(org); if (keepEdit == 0) { return(EditReturnListUrl.IsEmpty() ? (ActionResult)RedirectToAction("Index") : Redirect(EditReturnListUrl)); } return(RedirectToAction("Edit", new { id = _editId })); } } catch (Exception ex) { ModelState.AddModelError(keyFieldName, MvcLogger.GetErrorMessage(ex)); } ViewBag.EditMode = true; ViewBag.EditAction = EditAction; ViewBag.Title = GetTitle(TitleType.Editor); BuildEditMenu(); ViewBag.PageMenu = PageMenu; OnEditItem(org); return(View(PopupEditor ? ViewEditPopup : ViewEdit, org)); } return(new ForbidResult()); } } return(NotFound()); }
public virtual async Task <IActionResult> Create(int keepEdit, T item) { if (!OnCreateAuthCheck()) { return(new ForbidResult()); } var keyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); try { OnCreateSaveItem(item); if (OnCreateSaveCheck(item)) { if (await Repo.CreateAsync(item)) { OnAfterCreateSaveItem(item); if (keepEdit == 0) { return(CreateReturnListUrl.IsEmpty() ? (ActionResult)RedirectToAction("Index") : Redirect(CreateReturnListUrl)); } if (keepEdit == 1) { var itemIdValue = Digger.GetObjectValue(item, keyFieldName); return(RedirectToAction("Edit", new { id = itemIdValue })); } return(CreateSaveAndCreateUrl.IsEmpty() ? (ActionResult)RedirectToAction("Create") : Redirect(CreateSaveAndCreateUrl)); } } return(new ForbidResult()); } catch (Exception ex) { ModelState.AddModelError(keyFieldName, MvcLogger.GetErrorMessage(ex)); } ViewBag.EditMode = false; ViewBag.CreateAction = CreateAction; ViewBag.Title = GetTitle(TitleType.Create); BuildCreateMenu(); OnErrorCreateSaveItem(item); ViewBag.PageMenu = PageMenu; return(View(PopupEditor ? ViewCreatePopup : ViewCreate, item)); }
public virtual IActionResult Edit(int keepEdit, T item) { var keyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); var v = Digger.GetObjectValue(item, keyFieldName); if (v != null) { int.TryParse(v.ToString(), out _editId); if (_editId > 0) { var org = Repo.GetItem(_editId); var x = TryUpdateModelAsync(org); if (OnEditSaveCheck(org)) { OnEditSaveItem(org); if (Repo.Edit(org)) { if (keepEdit == 0) { return(EditReturnListUrl.IsEmpty() ? (ActionResult)RedirectToAction("Index") : Redirect(EditReturnListUrl)); } return(RedirectToAction("Edit", new { id = _editId })); } ViewBag.EditMode = true; ViewBag.EditAction = EditAction; ViewBag.Title = GetTitle(TitleType.Editor); BuildEditMenu(_editId); ViewBag.PageMenu = PageMenu; OnEditItem(org); return(View(PopupEditor ? ViewEditPopup : ViewEdit, org)); } return(NotFound()); } } return(NotFound()); }
public virtual async Task <IActionResult> Show(int id) { if (!OnShowAuthCheck()) { return(new ForbidResult()); } var item = await GetShowItem(id); if (item == null) { return(NotFound()); } if (!OnShowCheck(item)) { return(NotFound()); } var _queryDictionary = QueryHelpers.ParseQuery(Request.QueryString.ToString()); var _queryItems = _queryDictionary.SelectMany(x => x.Value, (col, value) => new KeyValuePair <string, string>(col.Key, value)).ToList(); var gridItem = _queryItems.FirstOrDefault(d => d.Key == "grid"); var grid = ""; grid = gridItem.Value; ViewBag.ShowMode = true; ViewBag.Title = GetTitle(TitleType.Show); ViewBag.Grid = grid; BuildShowMenu(id); OnShowItem(item); ViewBag.KeyFieldName = Digger2.GetKeyFieldNameFirst(typeof(T)); ViewBag.KeyFieldValue = id; ViewBag.PageMenu = PageMenu; return(View(item)); }