public virtual PagedResultsDTO <ProposalDTO> Find(string filterQuery = "", string institutionId = "", bool futureOnly = false, string sortField = "limitDate", string sortDirection = "desc", int pageNo = 0, int pageSize = 0)
        {
            if (pageSize <= 0)
            {
                return(null);
            }

            var mapper = new MapperConfiguration(cfg => {
                cfg.CreateMap <PagedResultsDTO <Proposal>, PagedResultsDTO <ProposalDTO> >();
                cfg.CreateMap <Proposal, ProposalDTO>();
                cfg.CreateMap <Institution, InstitutionDTO>();
                cfg.CreateMap <ProposalDocument, ProposalDocumentDTO>();
            }).CreateMapper();

            var query = proposalService.Get().Where(p => p.Title.ToLower().Contains(filterQuery) && (string.IsNullOrEmpty(institutionId) || p.InstitutionId == institutionId) && (!futureOnly || p.LimitDate > DateTime.Now));

            switch (sortField)
            {
            case "startDate":
                query = sortDirection == "asc" ? query.OrderBy(p => p.StartDate ?? DateTime.MaxValue) : query.OrderByDescending(p => p.StartDate ?? DateTime.MinValue);
                break;

            case "limitDate":
                query = sortDirection == "asc" ? query.OrderBy(p => p.LimitDate ?? DateTime.MaxValue) : query.OrderByDescending(p => p.LimitDate ?? DateTime.MinValue);
                break;
            }

            var result = PagedResultsDTO <Proposal> .GetPagedResultsDTO(query, pageNo, pageSize);

            return(mapper.Map <PagedResultsDTO <ProposalDTO> >(result));
        }
Exemplo n.º 2
0
        public PagedResultsDTO GetInviteesByInvitation(long userID, long invitationID, int page, int pageSize)
        {
            PagedResultsDTO results = new PagedResultsDTO();

            results.TotalCount = _repository.Queryable().Count(x => x.UserID == userID && x.InvitationID == invitationID);
            results.Data       = Mapper.Map <List <Invitee>, List <InviteeDTO> >(_repository.Query(x => x.UserID == userID && x.InvitationID == invitationID).Select().OrderBy(x => x.InvitationID).Skip((page - 1) * pageSize)
                                                                                 .Take(pageSize).ToList());
            return(results);
        }
        public PagedResultsDTO GetPagingContactsByGroup(long userID, long groupID, int page, int pageSize)
        {
            PagedResultsDTO results = new PagedResultsDTO();

            results.TotalCount = _repository.Queryable().Count(x => !x.ContactInThisGroupIsDeleted && x.UserID == userID);
            results.Data       = Mapper.Map <List <Contact>, List <ContactDTO> >(_repository.Query(x => x.GroupID == groupID && !x.Contact.ContactIsDeleted && !x.ContactInThisGroupIsDeleted && x.UserID == userID).Select(x => x.Contact).OrderBy(x => x.ContactID).Skip((page - 1) * pageSize)
                                                                                 .Take(pageSize).ToList());
            return(results);
        }
Exemplo n.º 4
0
        public PagedResultsDTO GetAllContactsForCertainUser(long userID, int page, int pageSize)
        {
            PagedResultsDTO results = new PagedResultsDTO();

            results.TotalCount = _repository.Queryable().Count(x => !x.ContactIsDeleted && x.UserID == userID);
            results.Data       = Mapper.Map <List <Contact>, List <ContactDTO> >(_repository.Query(x => !x.ContactIsDeleted && x.UserID == userID).Select().OrderBy(x => x.ContactID).Skip((page - 1) * pageSize)
                                                                                 .Take(pageSize).ToList());
            return(results);
        }
Exemplo n.º 5
0
        public PagedResultsDTO GetAllTemplatesForCertainUser(long userID, int page, int pageSize)
        {
            PagedResultsDTO results = new PagedResultsDTO();

            results.TotalCount = _repository.Queryable().Count(x => !x.TemplateIsDeleted && (x.UserID == userID || x.UserID == 15)); //&& x.UserID == userID
            //&& x.UserID == userID
            results.Data = Mapper.Map <List <Template>, List <TemplateDTO> >(_repository.Query(x => !x.TemplateIsDeleted && (x.UserID == userID || x.UserID == 15)).Select().OrderBy(x => x.TemplateID).Skip((page - 1) * pageSize)
                                                                             .Take(pageSize).ToList());
            return(results);
        }
Exemplo n.º 6
0
        public PagedResultsDTO GetAllGroups(long userID, int page, int pageSize)
        {
            PagedResultsDTO results = new PagedResultsDTO();

            results.TotalCount = _repository.Queryable().Count(x => !x.GroupIsDeleted && x.UserID == userID);
            results.Data       = Mapper.Map <List <Group>, List <GroupDTO> >(_repository.Query(x => !x.GroupIsDeleted && x.UserID == userID).Select().OrderBy(x => x.GroupID).Skip((page - 1) * pageSize)
                                                                             .Take(pageSize).ToList());
            //var groups = _repository.Query(x => x.UserID == userID && x.GroupIsDeleted != true).Select().ToList();
            return(results);
        }