Пример #1
0
        /// <summary>
        /// Map entities to models
        /// </summary>
        /// <param name="linkTrackers"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        private IQueryable <LinkTrackerModel> Maps(IQueryable <LinkTracker> linkTrackers,
                                                   LinkTrackerSearchModel searchModel)
        {
            var trackerLink = UrlUtilities.GenerateUrl(HttpContext.Current.Request.RequestContext, "SiteApi",
                                                       "LinkTracker", new { area = "" }, true);

            // Caculate the end date from date to
            DateTime?dateTo = null;

            if (searchModel.DateTo.HasValue)
            {
                dateTo = searchModel.DateTo.Value.ToEndDate();
            }

            return(linkTrackers.Select(l => new LinkTrackerModel
            {
                Id = l.Id,
                Name = l.Name,
                TrackerLink = trackerLink + "?id=" + SqlFunctions.StringConvert((double)l.Id).Trim(),
                IsAllowMultipleClick = l.IsAllowMultipleClick,
                RedirectUrl = l.RedirectUrl ?? string.Empty,
                PageId = l.PageId,
                PageTitle = l.PageId.HasValue ? l.Page.Title : string.Empty,
                ClickCount = l.LinkTrackerClicks
                             .Count(lc => (!searchModel.DateFrom.HasValue || lc.Created >= searchModel.DateFrom.Value) &&
                                    (!dateTo.HasValue || lc.Created <= dateTo)),
                RecordOrder = l.RecordOrder,
                Created = l.Created,
                CreatedBy = l.CreatedBy,
                LastUpdate = l.LastUpdate,
                LastUpdateBy = l.LastUpdateBy
            }));
        }
Пример #2
0
        /// <summary>
        /// Search the link trackers
        /// </summary>
        /// <param name="si"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public JqGridSearchOut SearchLinkTrackers(JqSearchIn si, LinkTrackerSearchModel searchModel)
        {
            var data = SearchLinkTrackers(searchModel);

            var linkTrackers = Maps(data, searchModel);

            return(si.Search(linkTrackers));
        }
Пример #3
0
 /// <summary>
 /// Search link trackers
 /// </summary>
 /// <param name="searchModel"></param>
 /// <returns></returns>
 private IQueryable <LinkTracker> SearchLinkTrackers(LinkTrackerSearchModel searchModel)
 {
     return(Fetch(l => string.IsNullOrEmpty(searchModel.Keyword)
                  ||
                  (!string.IsNullOrEmpty(l.Name) && l.Name.ToLower().Contains(searchModel.Keyword.ToLower()))
                  ||
                  (!string.IsNullOrEmpty(l.RedirectUrl) &&
                   l.RedirectUrl.ToLower().Contains(searchModel.Keyword.ToLower()))));
 }
Пример #4
0
        /// <summary>
        /// Export link trackers
        /// </summary>
        /// <param name="si"></param>
        /// <param name="searchModel"></param>
        /// <param name="gridExportMode"></param>
        /// <returns></returns>
        public HSSFWorkbook Exports(JqSearchIn si, GridExportMode gridExportMode, LinkTrackerSearchModel searchModel)
        {
            var data = gridExportMode == GridExportMode.All ? GetAll() : SearchLinkTrackers(searchModel);

            var linkTrackers = Maps(data, searchModel);

            var exportData = si.Export(linkTrackers, gridExportMode);

            return(ExcelUtilities.CreateWorkBook(exportData));
        }
Пример #5
0
        /// <summary>
        /// Export link trackers
        /// </summary>
        /// <param name="si"></param>
        /// <param name="gridExportMode"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public ActionResult Exports(JqSearchIn si, GridExportMode gridExportMode, LinkTrackerSearchModel searchModel)
        {
            var workbook = _linkTrackerService.Exports(si, gridExportMode, searchModel);

            var output = new MemoryStream();

            workbook.Write(output);

            return(File(output.ToArray(), "application/vnd.ms-excel", "LinkTrackers.xls"));
        }
Пример #6
0
 public string _AjaxBinding(JqSearchIn si, LinkTrackerSearchModel searchModel)
 {
     return(JsonConvert.SerializeObject(_linkTrackerService.SearchLinkTrackers(si, searchModel)));
 }
Пример #7
0
        public ActionResult Index()
        {
            var searchModel = new LinkTrackerSearchModel();

            return(View(searchModel));
        }