protected override void ExecuteDeleteMethod(TModel model, IBaseUnitOfWorkEf unitOfWork)
        {
            var repo = unitOfWork.GetGenericRepo <TModel>();

            repo.AttachEntity(model);

            repo.Delete((TModel)model);
        }
        protected override TViewModel ExecuteGetById(TIdentity id, IBaseUnitOfWorkEf unitOfWork)
        {
            var repo = unitOfWork.GetGenericRepo <TModel>();

            var model = repo.GetById(id);

            return(ToViewModel(model));
        }
        protected override TViewModel ExecuteUpdateMethod(TModel model, IBaseUnitOfWorkEf unitOfWork)
        {
            var repo = unitOfWork.GetGenericRepo <TModel>();

            repo.AttachEntity((TModel)model);

            repo.Update((TModel)model);

            return(ToViewModel(model));
        }
        protected override SearchResults <TViewModel> ExecuteGetList(SortAndFilterData sortAndFilter, IBaseUnitOfWorkEf unitOfWork)
        {
            var param  = GetSearchParams(sortAndFilter, unitOfWork);
            var search = GetSearchEngine(param);

            var searchQuery = search.GetSearchQuery();
            var totalCount  = 0;

            var repo = unitOfWork.GetGenericRepo <TModel>();

            if (sortAndFilter.GetCount)
            {
                totalCount = repo.Get().Count();
            }

            var models = ToViewModel(searchQuery).ToList();

            return(new SearchResults <TViewModel> {
                Results = models, Count = totalCount
            });
        }
        protected override void ExecuteCreateMethod(TModel model, IBaseUnitOfWorkEf unitOfWork)
        {
            var repo = unitOfWork.GetGenericRepo <TModel>();

            repo.Insert(model);
        }