public PartialViewResult Index(VMAuthorAphorism filterModel, SxOrderItem 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 async Task <ActionResult> Edit(VMAuthorAphorism model)
        {
            var isNew = model.Id == 0;

            if (isNew || string.IsNullOrWhiteSpace(model.TitleUrl))
            {
                model.TitleUrl = UrlHelperExtensions.SeoFriendlyUrl(model.Name);
            }

            var existByTitleModel = await Repo.GetByTitleUrlAsync(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 = await Repo.GetByNameAsync(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, SxOrderItem order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrderItem {
                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));
        }