public void UpdateOdoForTrucks(TruckDatatables data) { _truckService.UpdateOdoForTrucks(data.Data); }
public TruckDatatables GetTrucksForTable(int page, int itemsPerPage, string sortBy, bool reverse, string truckSearchValue, string searchPartNo) { var truck = from a in _truckRepository.GetAllQueryable() join b in _departmentRepository.GetAllQueryable() on new { a.DepC } equals new { b.DepC } into t1 from b in t1.DefaultIfEmpty() join c in _driverRepository.GetAllQueryable() on new { a.DriverC } equals new { c.DriverC } into t2 from c in t2.DefaultIfEmpty() join f in _driverRepository.GetAllQueryable() on a.AssistantC equals f.DriverC into t10 from f in t10.DefaultIfEmpty() join d in _partnerRepository.GetAllQueryable() on new { a.PartnerMainC, a.PartnerSubC } equals new { d.PartnerMainC, d.PartnerSubC } into t3 from d in t3.DefaultIfEmpty() join m in _modelRepository.GetAllQueryable() on new { a.ModelC } equals new { m.ModelC } into t4 from m in t4.DefaultIfEmpty() where (truckSearchValue == null || a.TruckC.Contains(truckSearchValue) || a.RegisteredNo.Contains(truckSearchValue) ) select new TruckViewModel() { TruckC = a.TruckC, RegisteredNo = a.RegisteredNo, RegisteredD = a.RegisteredD, VIN = a.VIN, MakeN = a.MakeN, DepC = a.DepC, DepN = b != null ? b.DepN : "", DriverC = a.DriverC, DriverN = c != null ? c.LastN + " " + c.FirstN : "", AssistantC = a.DriverC, AssistantN = f != null ? f.LastN + " " + f.FirstN : "", AcquisitionD = a.AcquisitionD, PartnerI = a.PartnerI, GrossWeight = a.GrossWeight, PartnerMainC = a.PartnerMainC, PartnerSubC = a.PartnerSubC, PartnerN = (a.PartnerI == "1") ? d.PartnerN : (c != null ? c.LastN + " " + c.FirstN : ""), IsActive = a.IsActive, DisusedD = a.DisusedD, Odometer = a.Odometer, Status = a.Status, ModelN = m.ModelN, LossFuelRate = a.LossFuelRate }; if (searchPartNo != null) { truck = from a in _truckRepository.GetAllQueryable() join b in _departmentRepository.GetAllQueryable() on new { a.DepC } equals new { b.DepC } into t1 from b in t1.DefaultIfEmpty() join c in _driverRepository.GetAllQueryable() on new { a.DriverC } equals new { c.DriverC } into t2 from c in t2.DefaultIfEmpty() join f in _driverRepository.GetAllQueryable() on a.AssistantC equals f.DriverC into t10 from f in t10.DefaultIfEmpty() join d in _partnerRepository.GetAllQueryable() on new { a.PartnerMainC, a.PartnerSubC } equals new { d.PartnerMainC, d.PartnerSubC } into t3 from d in t3.DefaultIfEmpty() join m in _maintenanceDetailRepository.GetAllQueryable() on a.TruckC equals m.Code into t4 from m in t4.DefaultIfEmpty() where (truckSearchValue == null || a.TruckC.Contains(truckSearchValue) || a.RegisteredNo.Contains(truckSearchValue) ) && (m.ObjectI == Constants.TRUCK && m.PartNo.Contains(searchPartNo) ) select new TruckViewModel() { TruckC = a.TruckC, RegisteredNo = a.RegisteredNo, RegisteredD = a.RegisteredD, VIN = a.VIN, MakeN = a.MakeN, DepC = a.DepC, DepN = b != null ? b.DepN : "", DriverC = a.DriverC, DriverN = c != null ? c.LastN + " " + c.FirstN : "", AssistantC = a.DriverC, AssistantN = f != null ? f.LastN + " " + f.FirstN : "", AcquisitionD = a.AcquisitionD, PartnerI = a.PartnerI, GrossWeight = a.GrossWeight, PartnerMainC = a.PartnerMainC, PartnerSubC = a.PartnerSubC, PartnerN = d.PartnerN, IsActive = a.IsActive, DisusedD = a.DisusedD, LossFuelRate = a.LossFuelRate }; } // sorting (done with the System.Linq.Dynamic library available on NuGet) var truckOrdered = truck.OrderBy(sortBy + (reverse ? " descending" : "")); // paging var truckPaged = truckOrdered.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList(); var datatable = new TruckDatatables() { Data = truckPaged, Total = truckOrdered.Count() }; return(datatable); }