partial void BuildBtn(NSObject sender) { // Clear output fields errorOutputBox.StringValue = resultTxtBox.StringValue = ""; // Get data fnStringArr = new List <string>(new string[] { jobNumTxtBox.StringValue, counterTxtBox.StringValue, totalPDFsTxtBox.StringValue, custCodeTxtBox.StringValue, campNameTxtBox.StringValue, origFNTxtBox.StringValue, widthTxtBox.StringValue, heightTxtBox.StringValue, stockTxtBox.StringValue, quantTxtBox.StringValue, revVerTxtBox.StringValue, finishingTxtBox.StringValue, colourTxtBox.StringValue, commentTxtBox.StringValue, logoWanted }); string filePath = showFilePathTxtBox.StringValue; /**Error Check**/ StringBuilder sb = new StringBuilder(); // Counter/Total PDFs have special check when reject if (rejectCheck.State == NSCellStateValue.On) { sb.Append(ErrorCheck.CheckNumerical(fnStringArr[1], 1, true) + ErrorCheck.CheckNumerical(fnStringArr[2], 2, true)); } else { sb.Append(ErrorCheck.CheckPages(fnStringArr[1], fnStringArr[2])); } sb.Append(ErrorCheck.CheckNumerical(fnStringArr[0], 0, false) + ErrorCheck.CheckEmpty(fnStringArr[3], 3) + ErrorCheck.CheckEmpty(fnStringArr[4], 4) + ErrorCheck.CheckEmpty(fnStringArr[5], 5) + ErrorCheck.CheckFloat(fnStringArr[6], 6) + ErrorCheck.CheckFloat(fnStringArr[7], 7) + ErrorCheck.CheckEmpty(fnStringArr[8], 8) + ErrorCheck.CheckNumerical(fnStringArr[9], 9, true) + ErrorCheck.CheckNumerical(fnStringArr[10], 10, true) + ErrorCheck.CheckEmpty(fnStringArr[11], 11) + ErrorCheck.CheckEmpty(fnStringArr[12], 12) + ErrorCheck.CheckEmpty(fnStringArr[13], 13) + ErrorCheck.CheckEmpty(filePath, 14)); // Invalid Char Check foreach (var item in fnStringArr) { sb.Append(ErrorCheck.CheckInvalidChar(item)); } // Errors found are displayed and build stopped if (sb.Length != 0) { DisplayErrors(sb); return; } /**Renaming/Moving**/ string folderNameString = string.Format("{0}_{1}", fnStringArr[0], fnStringArr[4]); string fileNameString = string.Format("{0}_{1}", fnStringArr[0], fnStringArr[5]); string newFilePath; //If Reject if (rejectCheck.State == NSCellStateValue.On) { newFilePath = filePath + "/Reject"; } else { newFilePath = filePath + "/" + folderNameString; } // Folder Creation try { if (!Directory.Exists(newFilePath)) { Directory.CreateDirectory(newFilePath); } } catch (Exception) { sb.Append("- Unable to create folder\n" + newFilePath); DisplayErrors(sb); return; } // Rename/Move sb.Append(MoveAndRenameFile(filePath, newFilePath, fileNameString)); if (sb.Length != 0) { DisplayErrors(sb); // return; } /**XML Creation**/ bool saveOK = XMLClass.SaveXMLToFile(XMLClass.CreateXML(fnStringArr), newFilePath + "/" + fileNameString + ".xml"); if (!saveOK) { sb.Append("- File Path is not valid\n"); DisplayErrors(sb); return; } /**Add to Previous Filename table**/ FNDataSource.Filenames.Add(new Filename(FNDataSource.FileID, fileNameString)); FNDataSource.FileID++; /**Display and Notify user**/ resultTxtBox.StringValue = fileNameString; notificationLabel.StringValue = "Success!"; resultTxtBox.SelectText(sender); // /**Page Counter increment**/ int count = int.Parse(fnStringArr[1]), total = int.Parse(fnStringArr[2]); if (count < total) { count++; counterTxtBox.StringValue = count.ToString(); } if (fnStringArr[0].Equals("000000")) { jobNumTxtBox.StringValue = "000000"; } }
partial void ImportXML(NSObject sender) { // User selects XML File using (var dlg = NSOpenPanel.OpenPanel) { dlg.CanChooseFiles = true; dlg.CanChooseDirectories = false; dlg.AllowsMultipleSelection = false; dlg.AllowedFileTypes = new string[] { AllowedFiletypes.xml.ToString() }; if (dlg.RunModal() == 1) { // Check filename string array exists if (fnStringArr != null) { fnStringArr.Clear(); } else { fnStringArr = new List <string>(); } // Import XML using (NSAlert alart = new NSAlert()) { alart.MessageText = "Import XML File"; try { List <string> importedXMLData = XMLClass.ImportXML(dlg.Url.Path); fnStringArr.AddRange(importedXMLData); // Remove JobName (Unneeded) fnStringArr.RemoveAt(4); for (int i = 0; i < fnStringArr.Count; i++) { //Reject file and Total PDFs if (rejectCheck.State == NSCellStateValue.On && i == 2) { continue; } if (rejectCheck.State == NSCellStateValue.On && i == 10) { fnStringArr[i] = (int.Parse(fnStringArr[i]) + 1).ToString(); } allTextFields[i].StringValue = fnStringArr[i]; } alart.InformativeText = "Successful import!"; } catch (Exception) { alart.InformativeText = "The import failed, please ensure your XML document is correct"; } alart.RunModal(); } } } }