Beispiel #1
0
        public async Task <IActionResult> Index()
        {
            var viewModel = new DocumentsListViewModel
            {
                Documents = await this.documentsService.GetAllAsync <DocumentViewModel>(),
            };

            return(this.View(viewModel));
        }
        public ActionResult All()
        {
            var studentId = this.User.Identity.GetUserId();
            var studentInfo = this.students.GetFullInfoById(studentId);

            var studentDocuments = studentInfo.Documents.AsQueryable().To<DocumentViewModel>().ToList();
            var requiredDocuments = this.documents
                .GetRequiredForStudent(studentId)
                .To<DocumentViewModel>()
                .ToList();

            var model = new DocumentsListViewModel()
            {
                StudentDocuments = studentDocuments,
                RequiredDocuments = requiredDocuments
            };

            return this.View(model);
        }
        public ActionResult List(string searchTerm = null, string[] tags = null)
        {
            DocumentsListViewModel model = new DocumentsListViewModel();

            model.TotalRecordsCount = documentsRepository.Documents.Count();
            model.Documents         = documentsRepository.Documents.ToList()
                                      .Where(d => (string.IsNullOrEmpty(searchTerm) || d.Name.ToLower().Contains(searchTerm.ToLower())))
                                      .Intersect(documentsRepository.Documents.ToList().Where(d => tags == null || d.GetTags().Intersect(tags).Count() > 0)).OrderBy(d => d.Name);

            if (Request.IsAjaxRequest())
            {
                return(PartialView("_DocumentsList", model));
            }
            else
            {
                //System.Threading.Thread.Sleep(5000);
                return(View(model));
            }
        }
Beispiel #4
0
        public ViewResult List(DocumentsListViewModel model, NavMenuViewModel menu, int?SubmitOrder, int?SubmitFilter, int page = 1)
        {
            if (SubmitOrder == null && Session["OrderInfo"] == null)
            {
                model.OrderInfo = new OrderInfo();
            }
            else if (SubmitOrder == null && Session["OrderInfo"] != null)
            {
                model.OrderInfo = (OrderInfo)Session["OrderInfo"];
            }
            else
            {
                Session["OrderInfo"] = model.OrderInfo;
            }

            if (SubmitFilter != null)
            {
                Session["FilterInfo"] = menu.ListFilterInfo;
            }

            model.FilterInfo = (ListFilterInfo)Session["FilterInfo"] ?? new ListFilterInfo();

            model.PagingInfo = new PagingInfo
            {
                CurrentPage  = page,
                ItemsPerPage = PageSize
            };

            IEnumerable <Document> documents = DocumentsListGeneratorHelper.GetDocumentsList(model, repository);

            model.PagingInfo.TotalItems = documents.Count();
            model.Documents             = documents
                                          .Skip((model.PagingInfo.CurrentPage - 1) * model.PagingInfo.ItemsPerPage)
                                          .Take(model.PagingInfo.ItemsPerPage);


            return(View(model));
        }
        public static IEnumerable <Document> GetDocumentsList(DocumentsListViewModel model, IDocumentsRepository repository)
        {
            string sortString = model.OrderInfo.SortBy;

            if (model.OrderInfo.Descending)
            {
                sortString += " desc";
            }

            IQueryable <Document> documents;

            switch (sortString)
            {
            case ("Name"):
                documents = repository.Documents.OrderBy(d => d.Name);
                break;

            case ("Name desc"):
                documents = repository.Documents.OrderByDescending(d => d.Name);
                break;

            case ("Date"):
                documents = repository.Documents.OrderBy(d => d.Date);
                break;

            case ("Date desc"):
                documents = repository.Documents.OrderByDescending(d => d.Date);
                break;

            case ("Author"):
                documents = repository.Documents.OrderBy(d => d.Author.Name);
                break;

            case ("Author desc"):
                documents = repository.Documents.OrderByDescending(d => d.Author.Name);
                break;

            default:
                documents = repository.Documents.OrderBy(d => d.Name);
                break;
            }

            if (!String.IsNullOrEmpty(model.FilterInfo.SearchString))
            {
                string searchString = model.FilterInfo.SearchString.ToUpper();

                switch (model.FilterInfo.SearchAmoung)
                {
                case ("ByName"):
                    documents = documents.Where(d => d.Name.ToUpper().Contains(searchString));
                    break;

                case ("ByAuthor"):
                    documents = documents.Where(d => d.Author.Name.ToUpper().Contains(searchString));
                    break;

                case ("Everywhere"):
                    documents = documents.Where(d => d.Name.ToUpper().Contains(searchString) ||
                                                d.Author.Name.ToUpper().Contains(searchString));
                    break;
                }
            }

            if (model.OrderInfo.isDateEnable && model.OrderInfo.DateFilter != null)
            {
                documents = documents.Where(d => d.Date.Date == model.OrderInfo.DateFilter);
            }

            return(documents);
        }