public PartialViewResult Index(VMAuthorAphorism filterModel, SxOrder order, int page = 1)
        {
            var filter = new SxFilter(page, _pageSize) { Order = order, WhereExpressionObject = filterModel };
            var viewModel = Repo.Read(filter);
            ViewBag.Filter = filter;

            return PartialView("_GridView", viewModel);
        }
        public ActionResult Edit(VMAuthorAphorism model)
        {
            var isNew = model.Id == 0;
            if (isNew || string.IsNullOrWhiteSpace(model.TitleUrl))
                model.TitleUrl = UrlHelperExtensions.SeoFriendlyUrl(model.Name);

            var existByTitleModel = Repo.GetByTitleUrl(model.TitleUrl);
            if (existByTitleModel != null)
            {
                if(!Equals(existByTitleModel.Id, model.Id))
                    ModelState.AddModelError("TitleUrl", "Запись с таким строковым ключем уже содержиться в БД");
            }

            var redactModel = Mapper.Map<VMAuthorAphorism, AuthorAphorism>(model);

            if (isNew)
            {
                var exist = Repo.All.FirstOrDefault(x => x.Name == model.Name);
                if (exist != null)
                {
                    ModelState.AddModelError("Name", "Автор с таким именем уже существует в БД");
                }
            }

            if (ModelState.IsValid)
            {
                AuthorAphorism newModel = null;
                if (isNew)
                    newModel = Repo.Create(redactModel);
                else
                    newModel = Repo.Update(redactModel, true, "Name", "Description", "PictureId", "TitleUrl", "Foreword");

                return RedirectToAction("index");
            }
            else
            {
                return View(model);
            }
        }
        public PartialViewResult FindGridView(VMAuthorAphorism filterModel, SxOrder order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrder { FieldName = "Name", Direction = SortDirection.Asc };
            var filter = new SxFilter(page, pageSize) { WhereExpressionObject = filterModel, Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order };
            filter.PagerInfo.PagerSize = 5;

            var viewModel = Repo.Read(filter).ToArray();

            ViewBag.Filter = filter;

            return PartialView("_FindGridView", viewModel);
        }