public async Task <IActionResult> Index(WorkType workType, Guid workItemId, string sortOrder)
        {
            ViewBag.WorkType           = workType;
            ViewBag.SuffixAscSortParm  = String.IsNullOrEmpty(sortOrder) ? "" : "suffix_asc";
            ViewBag.SuffixDescSortParm = String.IsNullOrEmpty(sortOrder) ? "" : "suffix_desc";
            WorkItem workItem = await _repo.GetWorkItem(workItemId);

            var list = await _repo.GetWorkItemBatch(workItemId);

            switch (sortOrder)
            {
            case "suffix_desc":
                list = list.OrderByDescending(a => Utility.PartSuffixGenerator.SuffixToIndex(a.Suffix)).ToList();
                break;

            case "suffix_asc":
                list = list.OrderBy(a => Utility.PartSuffixGenerator.SuffixToIndex(a.Suffix)).ToList();
                break;

            default:
                break;
            }

            // do this way to tell the context that we're tracking these parts
            var vm = new PartsForAWorkPopupViewModel()
            {
                PartBatch  = list,
                WorkItem   = workItem,
                WorkItemId = workItem.WorkItemId,
            };

            return(View(vm));
        }
        public async Task <IActionResult> ApplyAllProcessingNotes(WorkType workType, Guid workItemId, [Bind("WorkItemId,WorkItem,PartBatch,ProcessingNotes")] PartsForAWorkPopupViewModel popup)
        {
            ViewBag.WorkType = workType;

            if (ModelState.IsValid)
            {
                SetUIDs();

                var workItem = await _repo.GetWorkItem(popup.WorkItemId);

                var workItemBatch = await _repo.GetWorkItemBatch(workItemId);

                workItemBatch = workItemBatch.ToList();
                List <PartForWork> list = workItemBatch.ToList();
                for (int i = 0; i < list.Count; i++)
                {
                    list[i].ProcessingNotes = popup.ProcessingNotes;
                    await _repo.UpdatePartForWork(list[i]);
                }
                workItem.PartsForWork = list;
                return(Json(new { isValid = true, html = Helper.RenderRazorViewToString(this, "_ViewAll", new PartsForAWorkPopupViewModel(workItem)) }));
            }
            return(Json(new { isValid = false, html = Helper.RenderRazorViewToString(this, "ApplyAllProcessingNotes", popup) }));
        }