public ActionResult PartMaintenanceIndex(string ItemID)
        {
            ItemID = ItemID.ToUpper();
            int  count   = 0;
            bool canedit = CanUserEdit();

            if (ItemID.Length > 0)
            {
                GetUserInfo();
                string name = username.ToLower().Trim();

                TravelCardViewModel viewModel = new TravelCardViewModel
                {
                    UserSetting = _usersettingRepository.UserSetting.FirstOrDefault(a => a.UserName == name),
                    PartSetUp   = _partsetupRepository.PartSetUp.FirstOrDefault(x => x.PartID == ItemID),
                    ItemID      = ItemID,
                    CanUserEdit = canedit,
                };

                viewModel.Plant = _plantRepository.Plant.FirstOrDefault(a => a.PlantCodeID == viewModel.UserSetting.PlantCodeID);
                string plant = viewModel.Plant.PlantCode;
                viewModel.Component = _componentsRepository.GetByID(ItemID, plant);
                viewModel.Part      = _partsRepository.GetByID(ItemID, plant);
                viewModel.Component.Where(a => a.Id != ItemID);
                viewModel.ParentComponent = _componentsRepository.GetParentComponentByID(viewModel.ItemID, plant);
                count = viewModel.Part.Count();

                if (count > 0)
                {
                    return(View("PartMaintenanceIndex", viewModel));
                }
                if (count == 0)
                {
                    var message = "Your search returned no results. Please try again";
                    ViewData["NoResultMessage"] = message;
                    ViewData["PartID"]          = ItemID;

                    return(View("PartMaintenanceIndex", viewModel));
                }
            }

            return(View());
        }