/// <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 })); }
/// <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)); }
/// <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())))); }
/// <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)); }
/// <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")); }
public string _AjaxBinding(JqSearchIn si, LinkTrackerSearchModel searchModel) { return(JsonConvert.SerializeObject(_linkTrackerService.SearchLinkTrackers(si, searchModel))); }
public ActionResult Index() { var searchModel = new LinkTrackerSearchModel(); return(View(searchModel)); }