public int GetTotalCount(QuotationSortType sortOrder, QuotationFilterData filterData)
        {
            int quotationsCount = DB.QuotationsView
                                  .OrderBySortType(sortOrder)
                                  .WhereByFilterData(filterData)
                                  .Count();

            return(quotationsCount);
        }
        public IQueryable <QuotationDataView> Get(QuotationSortType sortOrder, QuotationFilterData filterData, PaginationData paginationData)
        {
            IQueryable <QuotationDataView> quotations = this.Get()
                                                        .OrderBySortType(sortOrder)
                                                        .WhereByFilterData(filterData)
                                                        .Pagination(paginationData);

            return(quotations);
        }
        public static IQueryable <QuotationDataView> WhereByFilterData(this IQueryable <QuotationDataView> quotations, QuotationFilterData filterData)
        {
            IQueryable <QuotationDataView> filterQuotations = quotations;

            if (filterData.IsFilterName)
            {
                filterQuotations = filterQuotations.Where(x => x.Name.Contains(filterData.Name));
            }

            if (filterData.IsFilterSymbol)
            {
                filterQuotations = filterQuotations.Where(x => x.Symbol.Contains(filterData.Symbol));
            }

            return(filterQuotations ?? quotations);
        }
 public QuotationViewModel(IList <QuotationModel> quotations, QuotationSortType sortModel, QuotationFilterData filterData, PaginationModel paginationModel)
 {
     this.Quotations      = quotations;
     this.SortModel       = sortModel;
     this.FilterData      = filterData;
     this.PaginationModel = paginationModel;
 }
        public IQueryable <QuotationDataView> GetByFilter(QuotationFilterData filterData)
        {
            var quotations = DB.QuotationsView.WhereByFilterData(filterData);

            return(quotations);
        }
        public IActionResult Index(int pageNumber = 1, QuotationSortType sortOrder = QuotationSortType.None, QuotationFilterData filterData = null)
        {
            var paginationData = new PaginationData(pageNumber);

            var quotations      = QuotationRepository.Get(sortOrder, filterData, paginationData).ToList();
            var quotationModels = Mapper.Map <List <QuotationModel> >(quotations);

            var quotationCount  = QuotationRepository.GetTotalCount(sortOrder, filterData);
            var paginationModel = new PaginationModel(paginationData, quotationCount);

            var model = new QuotationViewModel(quotationModels, sortOrder, filterData, paginationModel);

            return(View("Index", model));
        }