public ActionResult ManageCustomTag(CustomTagListModelFilter filter, int pageNumber = 1)
        {
            var totalRecords = 0;

            var model = new CustomTagListModel
            {
                Collection = _customTagService.GetCustomTagFilterList(filter, pageNumber, _pageSize, out totalRecords),
                Filter     = filter
            };

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc =
                pn => Url.Action(currentAction, new
            {
                pageNumber = pn,
                filter.CorporateId,
                filter.CustomTag,
                filter.DisabledTag,
                filter.EnabledTag
            });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
Example #2
0
        public IEnumerable <CustomTagViewModel> GetCustomTagFilterList(CustomTagListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            var corporateTags = _corporateTagRepository.GetCorporateTagByFilter(filter, pageNumber, pageSize, out totalRecords);

            if (corporateTags == null || !corporateTags.Any())
            {
                return(null);
            }

            long[] corporateIds = corporateTags.Select(m => m.CorporateId).ToArray();

            var organizations = _organizationRepository.GetOrganizations(corporateIds);

            var customerCountByTags = _corporateCustomerCustomTagRepository.GetCustomerCountByTag(corporateTags.Select(x => x.Tag).Distinct());

            var collection = _customTagFactory.Create(corporateTags, organizations, customerCountByTags);

            return(collection);
        }
        public IEnumerable <CorporateTag> GetCorporateTagByFilter(CustomTagListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                filter = filter ?? new CustomTagListModelFilter();

                var query = (from ct in linqMetaData.CorporateTag where ct.IsActive select ct);

                if (!string.IsNullOrEmpty(filter.CustomTag))
                {
                    query = (from q in query where q.Tag == filter.CustomTag select q);
                }

                if (filter.CorporateId > 0)
                {
                    query = (from q in query where q.CorporateId == filter.CorporateId select q);
                }

                if (filter.DisabledTag)
                {
                    query = (from q in query where q.IsDisabled select q);
                }

                if (filter.EnabledTag)
                {
                    query = (from q in query where q.IsDisabled == false select q);
                }

                query = (from q in query orderby q.DateCreated descending select q);

                totalRecords = query.Count();

                var entities = query.TakePage(pageNumber, pageSize).ToList();

                return(Mapper.Map <IEnumerable <CorporateTagEntity>, IEnumerable <CorporateTag> >(entities));
            }
        }