public async Task <IActionResult> Edit(WorkType workType, Guid id, [Bind("PartForWorkId,WorkItemId,WorkItem,ConditionDescription,InitWeight,CladdedWeight,FinishedWeight,ProcessingNotes,Suffix,MachiningImageFile,ClearMachiningFile,ClearMachiningImg,CladdingImageFile,ClearCladdingImg,FinishedImageFile,ClearFinishedImg,UsedImageFile,ClearUsedImg,MachiningImageBytes,CladdingImageBytes,FinishedImageBytes,UsedImageBytes")] PartForWork partForWork) { if (id != partForWork.PartForWorkId) { return(NotFound()); } if (ModelState.IsValid) { try { partForWork = SetImageUrls(partForWork); partForWork = await SetImageBytes(partForWork); SetUIDs(); await _repo.UpdatePartForWork(partForWork); } catch (DbUpdateConcurrencyException) { if (!(await PartForJobExists(partForWork.PartForWorkId))) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index", "PartsForAWork", new { workType = workType, workItemId = partForWork.WorkItemId })); } ViewBag.WorkType = workType; return(View(partForWork)); }
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> Edit(Guid id, [Bind("PartForWorkId,WorkItemId,WorkItem,Suffix,ConditionDescription,InitialWeight,CladdedWeight,FinishedWeight,ProcessingNotes,ImageName,ImageFile,ClearImg,ImageBytes")] PartForWork partForWork) { if (id != partForWork.PartForWorkId) { return(NotFound()); } if (ModelState.IsValid) { try { if (partForWork.WorkItem != null) { if (partForWork.WorkItem.WorkItemImageFile != null) { partForWork.WorkItem.WorkItemImageBytes = await FileURL.GetFileBytes(partForWork.WorkItem.WorkItemImageFile); } else if (partForWork.WorkItem.ClearWorkItemImg) { partForWork.WorkItem.WorkItemImageBytes = null; } } SetUIDs(); await _repo.UpdatePartForWork(partForWork); } catch (DbUpdateConcurrencyException) { if (!PartForWorkExists(partForWork.PartForWorkId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["StaticPartInfoId"] = new SelectList(await _repo.GetAllStaticPartInfos(), "StaticPartInfoId", "DrawingNumber", partForWork.WorkItem.StaticPartInfoId); return(View(partForWork)); }
private PartForWork SetImageUrls(PartForWork partForWork) { if (partForWork.MachiningImageBytes != null) { partForWork.MachiningImageUrl = FileURL.GetImageUrl(partForWork.MachiningImageBytes); } if (partForWork.CladdingImageBytes != null) { partForWork.CladdingImageUrl = FileURL.GetImageUrl(partForWork.CladdingImageBytes); } if (partForWork.FinishedImageBytes != null) { partForWork.FinishedImageUrl = FileURL.GetImageUrl(partForWork.FinishedImageBytes); } if (partForWork.UsedImageBytes != null) { partForWork.UsedImageUrl = FileURL.GetImageUrl(partForWork.UsedImageBytes); } return(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)); }
private async Task <PartForWork> SetImageBytes(PartForWork partForJob) { if (!partForJob.ClearMachiningImg) { if (partForJob.MachiningImageFile != null) { var machiningBytes = await FileURL.GetFileBytes(partForJob.MachiningImageFile); if (machiningBytes != partForJob.MachiningImageBytes) { partForJob.MachiningImageBytes = machiningBytes; } } } else { partForJob.MachiningImageBytes = null; } if (!partForJob.ClearCladdingImg) { if (partForJob.CladdingImageFile != null) { var claddingBytes = await FileURL.GetFileBytes(partForJob.CladdingImageFile); if (claddingBytes != partForJob.CladdingImageBytes) { partForJob.CladdingImageBytes = claddingBytes; } } } else { partForJob.CladdingImageBytes = null; } if (!partForJob.ClearFinishedImg) { if (partForJob.FinishedImageFile != null) { var finishedBytes = await FileURL.GetFileBytes(partForJob.FinishedImageFile); if (finishedBytes != partForJob.FinishedImageBytes) { partForJob.FinishedImageBytes = finishedBytes; } } } else { partForJob.FinishedImageBytes = null; } if (!partForJob.ClearUsedImg) { if (partForJob.UsedImageFile != null) { var usedBytes = await FileURL.GetFileBytes(partForJob.UsedImageFile); if (usedBytes != partForJob.UsedImageBytes) { partForJob.UsedImageBytes = usedBytes; } } } else { partForJob.UsedImageBytes = null; } return(partForJob); }