private void SetViewBags()
        {
            ViewBag.NCSInfo       = Logs.GetNCSInfo(InstitutionID);
            ViewBag.FileName      = Path.GetFileName(Uri);
            ViewBag.DirectoryName = Path.GetDirectoryName(Uri);
            ViewBag.DateStart     = DateStart;


            RetrievedResultPageNo = Page;
            SearchResultPageNo    = Page;
            if (SearchResult != null)
            {
                ViewBag.TotalErrors        = SearchResult.Sum(e => e.Errors);
                ViewBag.TotalClearedErrors = SearchResult.Sum(e => e.ClearedErrors);
                ViewBag.TotalAcknowledged  = SearchResult.Sum(e => e.Acknowledged);
                ViewBag.SearchResult       = SearchResult.ToPagedList(SearchResultPageNo, pageSize);
            }
            else if (RetrievedResult != null)
            {
                ViewBag.TotalErrors        = RetrievedResult.Sum(e => e.Errors);
                ViewBag.TotalClearedErrors = RetrievedResult.Sum(e => e.ClearedErrors);
                ViewBag.TotalAcknowledged  = RetrievedResult.Sum(e => e.Acknowledged);
                ViewBag.RetrievedResult    = RetrievedResult.ToPagedList(RetrievedResultPageNo, pageSize);
            }
        }
        public PartialViewResult SearchUniqueParticipantID(int?page, bool?refresh, string uniqueParticipantID)
        {
            if (!String.IsNullOrEmpty(uniqueParticipantID))
            {
                var entries = RetrievedResult
                              .Where(s => s.UniqueParticipantId != null && s.UniqueParticipantId.ToUpper().Contains(uniqueParticipantID.Trim().ToUpper()))
                              .OrderByDescending(x => x.ProcessDatetime)
                              .GroupBy(x => new { x.URI, x.ProcessDatetime, x.ProcessErrorDescr })
                              .Select(g => new UpassFileDetail
                {
                    InstitutionID       = InstitutionID,
                    Category            = g.First().Category,
                    CategoryID          = g.First().CategoryID,
                    CardSerialNumber    = g.First().CardSerialNumber,
                    UniqueParticipantId = g.First().UniqueParticipantId,
                    Event           = g.First().Event,
                    EventID         = g.First().EventID,
                    URI             = g.First().URI,
                    ProcessDatetime = g.Key.ProcessDatetime,
                    Errors          = g.Where(r => r.Level == EVENT_STATUS.ERROR).Count(),
                    ClearedErrors   = g.Where(c => c.Level == EVENT_STATUS.CLEARED).Count(),
                    Acknowledged    = g.Where(a => a.Level == EVENT_STATUS.ACKNOWLEDGED).Count(),
                });
                SearchResult = entries.ToList();
            }
            else
            {
                SearchResult = null;
            }

            SetViewBags();
            CurrentSearchKeyword = " Unique Participant ID contains '" + uniqueParticipantID + "'";
            ViewBag.keyword      = CurrentSearchKeyword;
            return(PartialView("_FileDetails", null));
        }
        public PartialViewResult SearchUniqueParticipantID(int?page, bool?refresh, string uniqueParticipantID)
        {
            if (!String.IsNullOrEmpty(uniqueParticipantID))
            {
                process(page, InstitutionID, Uri, UniqueParticipantID, DateStartTicks, CategoryID, EventID, null);
                SearchResult = RetrievedResult.Where(s => s.UniqueParticipantId != null && s.UniqueParticipantId.ToUpper().Contains(uniqueParticipantID.Trim().ToUpper())).ToList();
            }
            else
            {
                SearchResult = null;
            }

            SetViewBags();
            CurrentSearchKeyword = " Unique Participant ID contains '" + uniqueParticipantID + "'";
            ViewBag.keyword      = CurrentSearchKeyword;
            return(PartialView("_FileDetails", null));
        }
        public PartialViewResult SearchFileName(int?page, bool?refresh, string fileName)
        {
            if (!String.IsNullOrEmpty(fileName))
            {
                SearchResult = RetrievedResult.Where(s => s.URI != null && (Path.GetFileName(s.URI)).ToUpper().Contains(fileName.Trim().ToUpper())).ToList();
            }
            else
            {
                SearchResult = null;
            }
            SetViewBags();

            CurrentSearchKeyword = string.Format(" File Name contains '{0}'", fileName);
            ViewBag.keyword      = CurrentSearchKeyword;

            return(PartialView("_PartialFiles", null));
        }
        public PartialViewResult UpdateSearchResult(int?page, string sortOrder)
        {
            if (!String.IsNullOrEmpty(sortOrder))
            {
                _sortOrder = sortOrder;
            }

            ViewBag.CurrentSortOrder = _sortOrder;

            ViewBag.NCSInfo            = Logs.GetNCSInfo(InstitutionID);
            ViewBag.FileName           = Path.GetFileName(Uri);
            ViewBag.DirectoryName      = Path.GetDirectoryName(Uri);
            ViewBag.DateStart          = DateStart;
            ViewBag.TotalErrors        = RetrievedResult.Sum(e => e.Errors);
            ViewBag.TotalClearedErrors = RetrievedResult.Sum(e => e.ClearedErrors);
            ViewBag.TotalAcknowledged  = RetrievedResult.Sum(e => e.Acknowledged);


            var ents = from entry in SearchResult
                       select entry;

            if (page == null)
            {
                ViewBag.RequestTxIDSortParm         = _sortOrder == "RequestTxID" ? "RequestTxID_desc" : "RequestTxID";
                ViewBag.UniqueParticipantIDSortParm = _sortOrder == "UniqueParticipantID" ? "UniqueParticipantID_desc" : "UniqueParticipantID";
                ViewBag.ActionSortParm           = _sortOrder == "Action" ? "Action_desc" : "Action";
                ViewBag.ReasonSortParm           = _sortOrder == "Reason" ? "Reason_desc" : "Reason";
                ViewBag.CardSerialNumberSortParm = _sortOrder == "CardSerialNumber" ? "CardSerialNumber_desc" : "CardSerialNumber";
                ViewBag.RequestStatusSortParm    = _sortOrder == "RequestStatus" ? "RequestStatus_desc" : "RequestStatus";

                switch (_sortOrder)
                {
                case "RequestTxID_desc":
                    ents = ents.OrderByDescending(s => s.RequestTxID);
                    break;

                case "UniqueParticipantID_desc":
                    ents = ents.OrderByDescending(s => s.UniqueParticipantId);
                    break;

                case "UniqueParticipantID":
                    ents = ents.OrderBy(s => s.UniqueParticipantId);
                    break;

                case "Action_desc":
                    ents = ents.OrderByDescending(s => s.CardTypeCode);
                    break;

                case "Action":
                    ents = ents.OrderBy(s => s.URIType);
                    break;

                case "Reason_desc":
                    ents = ents.OrderByDescending(s => s.URIType);
                    break;

                case "Reason":
                    ents = ents.OrderBy(s => s.ReasonCode);
                    break;

                case "CardSerialNumber_desc":
                    ents = ents.OrderByDescending(s => s.CardSerialNumber);
                    break;

                case "CardSerialNumber":
                    ents = ents.OrderBy(s => s.CardSerialNumber);
                    break;

                case "RequestStatus_desc":
                    ents = ents.OrderByDescending(s => s.Errors > 0 ? s.Errors : (s.ClearedErrors > 0 ? s.ClearedErrors : s.Acknowledged));
                    break;

                case "RequestStatus":
                    ents = ents.OrderBy(s => s.Errors > 0 ? s.Errors : (s.ClearedErrors > 0 ? s.ClearedErrors : s.Acknowledged));
                    break;

                default:
                    ents = ents.OrderBy(s => s.RequestTxID);
                    break;
                }
            }

            SearchResultPageNo = (page ?? 1);

            SearchResult            = ents.ToList();
            ViewBag.SearchResult    = ents.ToPagedList(SearchResultPageNo, pageSize);
            ViewBag.RetrievedResult = RetrievedResult.ToPagedList(RetrievedResultPageNo, pageSize);
            ViewBag.keyword         = CurrentSearchKeyword;
            return(PartialView("_FileDetails", null));
        }