public ActionResult GetWorkList(MobileWorkListSearchCriteria criteria) { var data = new MobileResponseModel(); int pageSize = AppSettingHelper.PageSize; try { if (!string.IsNullOrWhiteSpace(criteria.Keyword)) { criteria.Keyword = criteria.Keyword.Trim(); } var items = GenericFactory.Business.GetDocumentsListBySearch(criteria.SearchBy, criteria.Keyword, criteria.UserId) .OrderByDescending(i => i.CreatedDate) .ToList(); var allowedStatus = new List <int>(); allowedStatus.Add((int)WorkflowStatus.Draft); allowedStatus.Add((int)WorkflowStatus.RequestForMoreInfoForSale); var documents = items.Where(i => allowedStatus.Contains(i.DocumentStatusId.Value)).ToList(); int totalCount = documents.Count; var result = new List <DocumentListItemViewModel>(); //random number Random rnd = new Random(); foreach (var d in documents) { var documentStatus = (WorkflowStatus)d.DocumentStatusId; var statusName = documentStatus.ToWorkFlowStatusName(); var biddingStatus = (d.BiddingStatusId.HasValue) ? (BiddingStatus)d.BiddingStatusId : BiddingStatus.undefined; var biddingStatusName = biddingStatus.ToBiddingStatusName(); var numberOfComments = rnd.Next(1, 5); var document = new DocumentListItemViewModel { Id = d.Id.ToString(), CustomerType = d.Customer.CustomerType.CustomerTypeName, CustomerName = d.Customer.Name, DocumentCode = d.FileNumber, SaleUserName = d.AspNetUser.DisplayName, WorkflowStatus = (int)d.DocumentStatusId, WorkflowStatusName = statusName, BiddingStatus = (d.BiddingStatusId.HasValue) ? (int)d.BiddingStatusId : 0, BiddingStatusName = biddingStatusName, IssueDate = d.CreatedDate.Value.ToString("dd/MM/yyyy"), ExpiryDate = d.ExpiryDate.HasValue ? d.ExpiryDate.Value.ToString("dd/MM/yyyy") : "", NumberOfComments = numberOfComments }; result.Add(document); } data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult Search(DocumentSearchCriteria criteria, string sortBy, string direction, int?page) { int pageSize = AppSettingHelper.PageSize; var documents = GenericFactory.Business.GetDocumentsListBySearch(criteria) .OrderByDescending(i => i.CreatedDate) .ToList(); int totalCount = documents.Count; var result = new List <DocumentListItemViewModel>(); foreach (var d in documents) { var documentStatus = (WorkflowStatus)d.DocumentStatusId; var statusName = documentStatus.ToWorkFlowStatusName(); var biddingStatus = (d.BiddingStatusId.HasValue) ? (BiddingStatus)d.BiddingStatusId : BiddingStatus.undefined; var biddingStatusName = biddingStatus.ToBiddingStatusName(); var document = new DocumentListItemViewModel { Id = d.Id.ToString(), CustomerType = d.Customer.CustomerType.CustomerTypeName, CustomerName = d.Customer.Name, DocumentCode = d.FileNumber, SaleUserName = d.AspNetUser.DisplayName, WorkflowStatus = (int)d.DocumentStatusId, WorkflowStatusName = statusName, BiddingStatus = (d.BiddingStatusId.HasValue) ? (int)d.BiddingStatusId : 0, BiddingStatusName = biddingStatusName, WeightPoint = d.WeightPoint ?? 0 }; result.Add(document); } RouteValueDictionary routeValues = new RouteValueDictionary(); routeValues.Add("sortBy", sortBy ?? ""); routeValues.Add("direction", direction); var list = new PaginatedList <DocumentListItemViewModel>( result.OrderByDescending(d => d.WeightPoint).ThenByDescending(o => o.WorkflowStatus).ToList(), page ?? 0, pageSize, totalCount, true, routeValues); var viewModel = new ListViewModel <DocumentListItemViewModel>() { Direction = direction, SortBy = sortBy, Data = list }; return(new JsonCamelCaseResult(viewModel, JsonRequestBehavior.AllowGet)); }