public IEnumerable <MaintenanceDetailViewModel> Get(string objectI, string code, string modelC) { var result = new List <MaintenanceDetailViewModel>(); var managementItems = from a in _maintenanceItemDetailRepository.GetAllQueryable() join b in _maintenanceItemRepository.GetAllQueryable() on a.MaintenanceItemC equals b.MaintenanceItemC where a.ModelC == modelC && a.ObjectI == objectI orderby a.DisplayLineNo select new MaintenanceDetailViewModel() { ObjectI = a.ObjectI, MaintenanceItemC = a.MaintenanceItemC, MaintenanceItemN = b.MaintenanceItemN, NoticeI = b.NoticeI, ReplacementInterval = b.ReplacementInterval, NoticeNo = b.NoticeNo }; foreach (var item in managementItems) { var newItem = item; var maintenanceItemHistory = (from a in _maintenanceDetailRepository.GetAllQueryable() where ( a.ObjectI == objectI && a.Code == code && a.MaintenanceItemC == item.MaintenanceItemC) orderby a.MaintenanceD descending select new MaintenanceDetailViewModel() { TruckC = a.Code, PlanMaintenanceD = a.MaintenanceD, PlanMaintenanceKm = a.Odometer, PartNo = a.PartNo, Description = a.Description }).FirstOrDefault(); // get next plan var maintenancePlan = (from a in _maintenancePlanDetailRepository.GetAllQueryable() where ( a.ObjectI == objectI && a.Code == code && a.MaintenanceItemC == item.MaintenanceItemC) select new MaintenanceDetailViewModel() { NextMaintenanceD = a.PlanMaintenanceD, NextMaintenanceKm = a.PlanMaintenanceKm }).FirstOrDefault(); if (maintenanceItemHistory != null) { newItem.TruckC = maintenanceItemHistory.TruckC; newItem.PlanMaintenanceD = maintenanceItemHistory.PlanMaintenanceD; newItem.PlanMaintenanceKm = maintenanceItemHistory.PlanMaintenanceKm; newItem.PartNo = maintenanceItemHistory.PartNo; newItem.Description = maintenanceItemHistory.Description; } if (maintenancePlan != null) { newItem.NextMaintenanceD = maintenancePlan.NextMaintenanceD; newItem.NextMaintenanceKm = maintenancePlan.NextMaintenanceKm; } result.Add(newItem); } return(result); }
public TrailerDatatables GetTrailersForTable(int page, int itemsPerPage, string sortBy, bool reverse, string trailerSearchValue, string searchPartNo) { var trailer = from a in _trailerRepository.GetAllQueryable() join b in _driverRepository.GetAllQueryable() on new { a.DriverC } equals new { b.DriverC } into t1 from b in t1.DefaultIfEmpty() where (trailerSearchValue == null || a.TrailerC.Contains(trailerSearchValue) || a.TrailerNo.Contains(trailerSearchValue) ) select new TrailerViewModel() { TrailerC = a.TrailerC, TrailerNo = a.TrailerNo, RegisteredD = a.RegisteredD, VIN = a.VIN, DriverC = a.DriverC, DriverN = b != null ? b.LastN + " " + b.FirstN : "", GrossWeight = a.GrossWeight, IsActive = a.IsActive, Situation = a.Situation, FromDate = a.FromDate, ToDate = a.ToDate }; if (searchPartNo != null) { trailer = from a in _trailerRepository.GetAllQueryable() join b in _driverRepository.GetAllQueryable() on new { a.DriverC } equals new { b.DriverC } into t1 from b in t1.DefaultIfEmpty() join m in _maintenanceDetailRepository.GetAllQueryable() on a.TrailerC equals m.Code into t4 from m in t4.DefaultIfEmpty() where (trailerSearchValue == null || a.TrailerC.Contains(trailerSearchValue) || a.TrailerNo.Contains(trailerSearchValue) ) && (m.ObjectI == Constants.TRAILER && m.PartNo.Contains(searchPartNo) ) select new TrailerViewModel() { TrailerC = a.TrailerC, TrailerNo = a.TrailerNo, RegisteredD = a.RegisteredD, VIN = a.VIN, DriverC = a.DriverC, DriverN = b != null ? b.LastN + " " + b.FirstN : "", GrossWeight = a.GrossWeight, IsActive = a.IsActive, Situation = a.Situation, FromDate = a.FromDate, ToDate = a.ToDate }; } // sorting (done with the System.Linq.Dynamic library available on NuGet) var trailerOrdered = trailer.OrderBy(sortBy + (reverse ? " descending" : "")); // paging var trailerPaged = trailerOrdered.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList(); var datatable = new TrailerDatatables() { Data = trailerPaged, Total = trailerOrdered.Count() }; return(datatable); }
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); }