public MenuDTO GetPipeMasterCurrentMenu(int UnitID) { MenuDTO currentItem = new MenuDTO(); PipeMasterMenuDTO nextMenuData = new PipeMasterMenuDTO(); nextMenuData = (from m in _unitOfWork.PipeMaster.GenerateEntityAsIQueryable() join p in _unitOfWork.Plant.GenerateEntityAsIQueryable() on m.PlantCode equals p.Code join c in _unitOfWork.Company.GenerateEntityAsIQueryable() on p.CompanyID equals c.ID join pp in _unitOfWork.Plant.GenerateEntityAsIQueryable() on p.ParentPlantID equals pp.ID // into pm from pmm in pm.DefaultIfEmpty() where m.ID == UnitID select new PipeMasterMenuDTO() { CompanyID = p.CompanyID, CompanyName = c.Name, PlantID = p.ID, PlantCode = p.Code, PlantName = p.Name, ParentPlantID = p.ParentPlantID.Value, ParentPlantName = pp.Name, Fluid = m.Fluid, PipeMasterID = m.ID, EquipmentNo = m.EquipmentNo, }).Distinct().FirstOrDefault(); if (nextMenuData != null) { currentItem = new MenuDTO() { ID = nextMenuData.PipeMasterID.ToString(), ParentID = nextMenuData.PlantID.ToString() + "_" + nextMenuData.Fluid, Code = nextMenuData.EquipmentNo, Name = nextMenuData.EquipmentNo, Icon = "", Path = nextMenuData.EquipmentNo, BreadCrumb = nextMenuData.ParentPlantName + " » " + nextMenuData.PlantName + " » " + nextMenuData.Fluid + " » " + nextMenuData.EquipmentNo }; } return(currentItem); }
public MenuDTO GetPipeMasterPreviousMenu(int UnitID) { MenuDTO previousItem = new MenuDTO(); List <PipeMasterMenuDTO> menuData = new List <PipeMasterMenuDTO>(); PipeMasterMenuDTO currentMenuData = (from m in _unitOfWork.PipeMaster.GenerateEntityAsIQueryable() join p in _unitOfWork.Plant.GenerateEntityAsIQueryable() on m.PlantCode equals p.Code join c in _unitOfWork.Company.GenerateEntityAsIQueryable() on p.CompanyID equals c.ID join pp in _unitOfWork.Plant.GenerateEntityAsIQueryable() on p.ParentPlantID equals pp.ID // into pm from pmm in pm.DefaultIfEmpty() where m.ID == UnitID select new PipeMasterMenuDTO() { CompanyID = p.CompanyID, CompanyName = c.Name, PlantID = p.ID, PlantCode = p.Code, PlantName = p.Name, ParentPlantID = p.ParentPlantID.Value, ParentPlantName = pp.Name, Fluid = m.Fluid, PipeMasterID = m.ID, EquipmentNo = m.EquipmentNo, }).Distinct().FirstOrDefault(); menuData = (from m in _unitOfWork.PipeMaster.GenerateEntityAsIQueryable() join p in _unitOfWork.Plant.GenerateEntityAsIQueryable() on m.PlantCode equals p.Code join c in _unitOfWork.Company.GenerateEntityAsIQueryable() on p.CompanyID equals c.ID join pp in _unitOfWork.Plant.GenerateEntityAsIQueryable() on p.ParentPlantID equals pp.ID // into pm from pmm in pm.DefaultIfEmpty() where p.CompanyID == currentMenuData.CompanyID && p.ParentPlantID == currentMenuData.ParentPlantID && p.ID == currentMenuData.PlantID && m.Fluid == currentMenuData.Fluid select new PipeMasterMenuDTO() { CompanyID = p.CompanyID, CompanyName = c.Name, PlantID = p.ID, PlantCode = p.Code, PlantName = p.Name, ParentPlantID = p.ParentPlantID.Value, ParentPlantName = pp.Name, Fluid = m.Fluid, PipeMasterID = m.ID, EquipmentNo = m.EquipmentNo, }).ToList(); if (menuData != null) { menuData = menuData.OrderBy(p => p.PlantName).ThenBy(p => p.Fluid).ThenBy(p => p.EquipmentNo).ToList(); bool flag = false; PipeMasterMenuDTO tempData = new PipeMasterMenuDTO(); int itemOrder = 0; foreach (PipeMasterMenuDTO nextMenuData in menuData) { if (nextMenuData.PipeMasterID == UnitID) { if (itemOrder == 0) { break; } else { previousItem = new MenuDTO() { ID = tempData.PipeMasterID.ToString(), ParentID = tempData.PlantID.ToString() + "_" + nextMenuData.Fluid, Code = tempData.EquipmentNo, Name = tempData.EquipmentNo, Icon = "", Path = tempData.EquipmentNo, BreadCrumb = tempData.ParentPlantName + " » " + tempData.PlantName + " » " + tempData.Fluid + " » " + tempData.EquipmentNo }; return(previousItem); } } else { tempData = new PipeMasterMenuDTO() { CompanyID = nextMenuData.CompanyID, CompanyName = nextMenuData.CompanyName, PlantID = nextMenuData.PlantID, PlantCode = nextMenuData.PlantCode, PlantName = nextMenuData.PlantName, ParentPlantID = nextMenuData.ParentPlantID, ParentPlantName = nextMenuData.ParentPlantName, Fluid = nextMenuData.Fluid, PipeMasterID = nextMenuData.PipeMasterID, EquipmentNo = nextMenuData.EquipmentNo }; itemOrder = itemOrder + 1; } } } if (currentMenuData != null) { previousItem = new MenuDTO() { ID = currentMenuData.PipeMasterID.ToString(), ParentID = currentMenuData.PlantID.ToString() + "_" + currentMenuData.Fluid, Code = currentMenuData.EquipmentNo, Name = currentMenuData.EquipmentNo, Icon = "", Path = currentMenuData.EquipmentNo, BreadCrumb = currentMenuData.ParentPlantName + " » " + currentMenuData.PlantName + " » " + currentMenuData.Fluid + " » " + currentMenuData.EquipmentNo }; } return(previousItem); }