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));
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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());
        }
Exemple #7
0
        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));
        }