public async Task <JsonResult> IndexJson(ExpectedReceiptFilterViewModels request, bool?Planned, string StatusCode) { var helper = new GoodsInDataTableSearchHelper(); var result = await helper.SearchFunction(request, true); var resultList = (IEnumerable <ExpectedReceiptViewModel.ExpectedReceipt>)result.filteredList; var data = resultList.Select(x => new { Actions = "<div class='btn-group' style='display:flex;'>" + "<a class='btn btn-primary' href='#'><i class='fa fa-gear fa-fw'></i> Action</a>" + "<a class='btn btn-primary dropdown-toggle' data-toggle='dropdown' href='#'>" + "<span class='fa fa-caret-down' title='Toggle dropdown menu'></span>" + "</a>" + "<ul class='dropdown-menu' role='menu'>" + (x.StatusCode.Equals("For Receiving", StringComparison.OrdinalIgnoreCase) ? (x.IsActive ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Edit") + "' onclick='btnClicked($(this))'><a>Edit</a></li>" : "") + "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" + (x.IsActive ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Delete") + "' onclick='btnClicked($(this))'><a>Delete</a></li>" : "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Enable") + "' onclick='btnClicked($(this))'><a>Enable</a></li>") : "") + (x.StatusCode.Equals("Received", StringComparison.OrdinalIgnoreCase) ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" + "<li class='complete' data-tranid='" + x.Id + "' href='javascript:void(0)' onclick='btnCompleted($(this))'><a>Complete</a></li>" : "") + (x.StatusCode.Equals("Completed", StringComparison.OrdinalIgnoreCase) ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" : "") + "</ul>" + "</div>", ExpectedReceiptDate = x.ExpectedReceiptDate.ToString("MMM. dd, yyyy"), GoodsReceivedNumber = x.IsActive ? "<a href='" + Url.Action("Index", "ExpectedReceiptLines", new { x.Id, x.GoodsReceivedNumber, x.StatusCode, x.IsActive }) + "'>" + x.GoodsReceivedNumber + "</a>" : "<a href='" + Url.Action("Index", "ExpectedReceiptLines", new { x.Id, x.GoodsReceivedNumber, x.StatusCode, x.IsActive }) + "'>" + x.GoodsReceivedNumber + "</a>", AutoReferenceNumber = x.AutoReferenceNumber, ReferenceNumber = x.ReferenceNumber, ReceivedDate = x.ReceivedDate?.ToString("MMM. dd, yyyy") ?? "", ReceivedBy = x.ReceivedBy, StatusCode = x.StatusCode, WarehouseCode = x.WarehouseCode, Address = x.Address, Supplier = x.Supplier, HaulierName = x.HaulierName, Comments = x.Comments, IsActive = x.IsActive, }); return(Json(new { draw = request.draw, recordsTotal = result.totalResultCount, recordsFiltered = result.filteredResultCount, data = data })); }
public async Task <dynamic> SearchFunction(ExpectedReceiptFilterViewModels request, bool IsPlanned) { var list = new List <ExpectedReceiptViewModel.ExpectedReceipt>().AsEnumerable(); var filteredList = new List <ExpectedReceiptViewModel.ExpectedReceipt>().AsEnumerable(); int filteredResultCount = 0; int totalResultCount = 0; var searchBy = request.search.value?.ToLower() ?? "" ?? ""; var take = request.length; var skip = request.start; var orderBy = "Id"; var orderDir = true; if (request.order != null) { orderDir = request.order[0].dir.ToLower().Equals("asc"); orderBy = request.columns[request.order[0].column].data; orderBy = (orderBy.Equals("actions", StringComparison.OrdinalIgnoreCase) ? "Id" : orderBy) + (orderDir ? "" : " desc"); } DateTime dt; DateTime?sDateFrom = null; if (DateTime.TryParse(request.from, out dt)) { sDateFrom = Convert.ToDateTime(request.from); } DateTime?sDateTo = null; if (DateTime.TryParse(request.to, out dt)) { sDateTo = Convert.ToDateTime(request.to).AddDays(1); } var url = ""; if (request.StatusCode.Equals("Received")) { url = $"api/GoodsIn/ExpectedReceipt/GetReceived/{request.IsActive}/{_customerId}/"; } else if (request.StatusCode.Equals("Completed")) { url = $"api/GoodsIn/ExpectedReceipt/GetCompleted/{request.IsActive}/{_customerId}/"; } else if (request.StatusCode.Equals("For Receiving") && IsPlanned) { url = $"api/GoodsIn/ExpectedReceipt/GetForReceiving/{request.IsActive}/{_customerId}/"; } else if (request.StatusCode.Equals("ALL")) { url = $"api/GoodsIn/ExpectedReceipt/GetList/{request.IsActive}/{_customerId}/"; } var response = await HttpClientHelper.ApiCall(url, Method.GET); if (response.IsSuccessful) { var result = response.Content; list = JsonConvert.DeserializeObject <List <dynamic> >(result).Select(x => new ExpectedReceipt { Id = x.Id, IsActive = x.IsActive, WarehouseDescription = x.Warehouse != null ? x.Warehouse.Description : "", ExpectedReceiptDate = x.ExpectedReceiptDate, GoodsReceivedNumber = x.GoodsReceivedNumber ?? "", ReferenceNumber = x.ReferenceNumber != null ? x.ReferenceNumber : "", AutoReferenceNumber = x.AutoReferenceNumber != null ? x.AutoReferenceNumber : "", //Received = x.Received, Comments = x.Comments ?? "", Address = x.Warehouse != null ? x.Warehouse.Address1 : "", WarehouseCode = x.Warehouse != null ? x.Warehouse.Description : "", ReceivedBy = x.ReceivedBy != null ? x.ReceivedBy : "", ReceivedDate = x.ReceivedDate, Supplier = x.Supplier != null ? x.Supplier : "", HaulierName = x.Haulier != null ? x.Haulier.Name : "", HaulierCode = x.Haulier != null ? x.Haulier.HaulierCode : "", StatusCode = x.Status != null ? x.Status.Name : "", Planned = x.Planned }).Where(x => x.Planned == IsPlanned).ToList(); filteredList = list.Where(x => x.ExpectedReceiptDate.ToString("MMM. dd, yyyy").ToLower().Contains(searchBy) || x.AutoReferenceNumber.ToLower().Contains(searchBy) || x.GoodsReceivedNumber.ToLower().Contains(searchBy) || x.ReferenceNumber.ToLower().Contains(searchBy) || (x.ReceivedDate?.ToString("MMM. dd, yyyy").ToLower().Contains(searchBy) ?? false) || x.ReceivedBy.ToLower().Contains(searchBy) || x.StatusCode.ToLower().Contains(searchBy)).OrderBy(orderBy, StringComparison.OrdinalIgnoreCase); } totalResultCount = list.Count(); filteredResultCount = filteredList.Count(); filteredList = filteredList.Skip(skip).Take(take); return(new { filteredList, filteredResultCount, totalResultCount }); }