public async Task <IActionResult> Create([Bind("PartForWork,PartForWorkId,ImageName,ImageFile,ClearImg,ImageBytes")] PartForWork partForWork) { if (ModelState.IsValid) { partForWork.PartForWorkId = Guid.NewGuid(); if (partForWork.WorkItem.WorkItemImageFile != null) { partForWork.WorkItem.WorkItemImageBytes = await FileURL.GetFileBytes(partForWork.WorkItem.WorkItemImageFile); } SetUIDs(); await _repo.AddPartForWork(partForWork); return(RedirectToAction(nameof(Index))); } ViewData["StaticPartInfoId"] = new SelectList(await _repo.GetAllStaticPartInfos(), "StaticPartInfoId", "DrawingNumber", partForWork.WorkItem.StaticPartInfoId); return(View(partForWork)); }
public async Task <IActionResult> Initialize(WorkType workType, Guid id, [Bind("WorkItemId,WorkItem,StaticPartInfoId,NumPartsForWork,StartDate,CompleteDate,ProcessSheetNotesFile,WorkId")] WorkItemViewModel vm) { if (id != vm.WorkItemId) { return(NotFound()); } ViewBag.WorkType = workType; var resultList = await _repo.GetPartsForWorksWithPartInfo(vm.StaticPartInfoId); var count = resultList.Count(); int max = 0; foreach (PartForWork pForWork in resultList) { var temp = PartSuffixGenerator.SuffixToIndex(pForWork.Suffix); if (temp > max) { max = temp; } } if (ModelState.IsValid) { var workItem = await _repo.GetWorkItem(vm.WorkItemId); workItem.StaticPartInfoId = vm.StaticPartInfoId; workItem.StartDate = vm.StartDate; workItem.InvoiceDate = vm.CompleteDate; workItem.IsInitialized = true; // look to see if this part/job already exists. If so, name suffix from that point var existingBatch = await _repo.GetExistingPartBatch((Guid)workItem.WorkId); var initCount = vm.NumPartsForWork; vm.NumPartsForWork += existingBatch.Count(); // update the number of parts in each PartForJob foreach (PartForWork part in existingBatch) { vm.NumPartsForWork += existingBatch.Count(); } if (workItem.ProcessSheetNotesFile != null) { workItem.ProcessSheetNotesPdfBytes = await FileURL.GetFileBytes(workItem.ProcessSheetNotesFile); } // create each part for the part batch for (int i = count; i < initCount + count; i++) { try { var tempPartForWork = new PartForWork { PartForWorkId = Guid.NewGuid(), WorkItemId = workItem.WorkItemId, }; tempPartForWork.Suffix = Utility.PartSuffixGenerator.IndexToSuffix(i); tempPartForWork.PartForWorkId = Guid.NewGuid(); SetUIDs(); await _repo.AddPartForWork(tempPartForWork); } catch (Exception ex) { ex.ToString(); continue; } } await _repo.UpdateWorkItem(workItem); return(RedirectToAction("Index", "WorkItems", new { workType = workType, workId = workItem.WorkId })); } return(View(vm)); }