protected Character(int id, string name, int attack, int magicDefense, int physicalDefense, int maximumHealth, int baseAttack, int baseMagicDefense, int basePhysicalDefense, int baseMaximumHealth, bool attacksPhysical, JobNumber jobNumber, bool canUseSkill, int remainingHealth, bool fainted, int experiencePoints, int timesFainted, int charactersDefeated, int matchesWon) { Id = id; Name = name; Attack = attack; MagicDefense = magicDefense; PhysicalDefense = physicalDefense; MaximumHealth = maximumHealth; BaseAttack = baseAttack; BaseMagicDefense = baseMagicDefense; BasePhysicalDefense = basePhysicalDefense; BaseMaximumHealth = baseMaximumHealth; AttacksPhysical = attacksPhysical; JobNumber = jobNumber; CanUseSkill = canUseSkill; RemainingHealth = remainingHealth; Fainted = fainted; ExperiencePoints = experiencePoints; TimesFainted = timesFainted; CharactersDefeated = charactersDefeated; MatchesWon = matchesWon; this.ExperiencePoints = experiencePoints; ensureValidBaseStats(baseAttack, baseMagicDefense, basePhysicalDefense, baseMaximumHealth); assignActualValues(); }
void AddCharacters(Party party) { OpenClosedConnection(); var command = new SqlCommand("execute GetCharacters " + party.Id, connection); using (var reader = command.ExecuteReader()) { while (reader.Read()) { string name = reader[2].ToString(); int attack = int.Parse(reader[3].ToString()); int physicalDefense = int.Parse(reader[4].ToString()); int health = int.Parse(reader[5].ToString()); int magicDefense = int.Parse(reader[8].ToString()); int charactersDefeated = int.Parse(reader[9].ToString()); int experiencePoints = int.Parse(reader[10].ToString()); int matchesWon = int.Parse(reader[11].ToString()); int timesFainted = int.Parse(reader[12].ToString()); JobNumber jobNumber = (JobNumber)int.Parse(reader[7].ToString()); Character character = getImplementation(name, attack, magicDefense, physicalDefense, health, party, jobNumber); party.TryAddCharacter(character); } } connection.Close(); }
private static bool EstablishC3DLog(string jobNumber) { FileStream fileStream; string path = JobNumber.GetPath(jobNumber); if (string.IsNullOrEmpty(path)) { return(false); } path += "\\autocad_log.log"; if (File.Exists(path)) { return(true); } try { fileStream = File.Create(path); fileStream.Close(); File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden); return(true); } catch { return(false); } }
private void OpenFolder(object sender, LinkLabelLinkClickedEventArgs e) { string path = JobNumber.GetPath(ProjectNumber); if (string.IsNullOrEmpty(path)) { MessageBox.Show("The folder could not be located.", "Error"); return; } Process.Start(path); }
public override int GetHashCode() { int result = 17; result = 31 * result + Id.GetHashCode(); result = 31 * result + Address.GetHashCode(); result = 31 * result + ClientName.GetHashCode(); result = 31 * result + JobNumber.GetHashCode(); result = 31 * result + (IsActive ? 1 : 0); return(result); }
private void OnCellDoubleClick(object sender, DataGridViewCellEventArgs e) { var rows = dgvProjects.SelectedRows; if (rows.Count == 0) return; var row = rows[0]; string jobNumber = row.Cells[0].Value.ToString(); if (JobNumber.TryParse(jobNumber)) { ProjectViewer viewer = new ProjectViewer(jobNumber); viewer.Show(); } }
public static void LogFileClose(string jobNumber) { if (!EstablishC3DLog(jobNumber)) { return; } string path = JobNumber.GetPath(jobNumber) + "\\autocad_log.log"; string logEntry = $"CLOSE||{DateTime.Now}"; File.AppendAllLines(path, new List <string> { logEntry }); }
public static void LogEntry(string jobNumber, string title, string body) { if (!EstablishC3DLog(jobNumber)) { return; } string path = JobNumber.GetPath(jobNumber) + "\\autocad_log.log"; string message = $"ENTRY||{title}||{body}"; File.AppendAllLines(path, new List <string> { message }); }
public static void LogFileOpen(string jobNumber) { if (!EstablishC3DLog(jobNumber)) { return; } string path = JobNumber.GetPath(jobNumber) + "\\autocad_log.log"; string name = System.Security.Principal.WindowsIdentity.GetCurrent().Name; string logEntry = $"OPEN||{name}||{DateTime.Now}"; File.AppendAllLines(path, new List <string> { logEntry }); }
/// <summary> /// Opens the specified folder of the active drawing's project. /// </summary> /// <param name="option">The sub-folder to open.</param> private static void OpenFolder(string option) { var doc = AcApp.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; // determines the job number of the active drawing. var jobNumber = Functions.GetJobNumber(doc); if (string.IsNullOrEmpty(jobNumber)) { return; } // Gets the base path of the project and exits if it doesn't exist. string jobPath = JobNumber.GetPath(jobNumber); // determine the path switch (option.ToLower()) { case "comp": { jobPath += @"\Comp"; break; } case "submittal": { jobPath += @"\Submittal"; break; } case "fielddata": { jobPath += @"\Field Data"; break; } default: break; } if (!Directory.Exists(jobPath)) { ed.WriteMessage("\nProject folder was not found." + Environment.NewLine); return; } Process.Start(jobPath); }
private void BtnSave_Click(object sender, EventArgs e) { JobInstructions = txtMsg.Text.Split(new string[] { "Note:" }, StringSplitOptions.None).Last(); //NEEDSTEST JobsAssigned job = new JobsAssigned(); foreach (var worker in AssignJobP3Activity.WorkerList) { EmployeeJob emp1 = new EmployeeJob(); emp1.EmpNAME = worker.empNAME; job.EmployeeJobs.Add(emp1); } startTime = JobDate + "T" + JobTime; job.AssignJOBNUM = JobNumber.ToString(); job.AssignCLIENT = JobClient; job.AssignWORK = JobName; job.AssignAREA = JobArea; job.AssignINSTRUCTIONS = JobInstructions; job.AssignTRUCK = JobTruckNo; job.TextSENT = null; job.AssignSTARTTIME = startTime; try { objJOBS.ExecutePostRequest(job); } catch (Exception ex) { Toast.MakeText(this, "Something went wrong:" + ex.Message, ToastLength.Long).Show(); } AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.SetMessage("Message saved."); alertDialog.SetPositiveButton("New Message", delegate { StartActivity(typeof(AssignJobP2Activity)); alertDialog.Dispose(); }); alertDialog.SetNegativeButton("Menu", delegate { StartActivity(typeof(MainActivity)); alertDialog.Dispose(); }); alertDialog.Show(); }
public static void XrefDwg() { var doc = AcApp.DocumentManager.MdiActiveDocument; if (doc == null) { return; } var ed = doc.Editor; var jobNumber = Path.GetFileNameWithoutExtension(doc.Name); if (jobNumber.Length > 9) { jobNumber = jobNumber.Remove(9); } if (!JobNumber.TryParse(jobNumber)) { ed.WriteMessage("Job number could not be determined. Use the regular X-Ref command instead." + Environment.NewLine); return; } string path = JobNumber.GetPath(jobNumber); if (!Directory.Exists(path)) { ed.WriteMessage("The job folder could not be located, please verify that the job number is correct." + Environment.NewLine); return; } Autodesk.AutoCAD.Windows.OpenFileDialog ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog( "Please select a file to x-ref", path, "dwg", "DwgFileToLink", Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder ); DialogResult pr = ofd.ShowDialog(); if (pr == DialogResult.OK && !string.IsNullOrEmpty(ofd.Filename)) { AttachXRef(ofd.Filename); } doc.Dispose(); }
public ProjectViewer(string jobNumber) { InitializeComponent(); string path = JobNumber.GetPath(jobNumber); ProjectFile = path + @"\Information.job"; if (!File.Exists(ProjectFile)) { //TODO: Add option to create a project file MessageBox.Show("No job file was found. Cannot open project."); this.Close(); return; } lblJobNumber.Text = $"Project: {jobNumber}"; ProjectNumber = jobNumber; this.Text = jobNumber; UpdateNotes(); }
public Dictionary <JobNumber, int> GetAmountForEveryJob() { OpenClosedConnection(); var command = new SqlCommand("execute GetTotalNumberOfCharactersEveryJob", connection); var result = new Dictionary <JobNumber, int>(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { JobNumber job = (JobNumber)int.Parse(reader[0].ToString()); int charactersWithJob = int.Parse(reader[1].ToString()); result.Add(job, charactersWithJob); } } connection.Close(); return(result); }
public static void XrefDwgFromAnother() { var doc = AcApp.DocumentManager.MdiActiveDocument; if (doc == null) { return; } var ed = doc.Editor; GetJobNumber form1 = new GetJobNumber(); var f1r = AcApp.ShowModalDialog(form1); if (f1r == DialogResult.Cancel) { ed.WriteMessage("No job number could be determined. Exiting." + Environment.NewLine); return; } ed.WriteMessage($"Going to job number {form1.Value}." + Environment.NewLine); Autodesk.AutoCAD.Windows.OpenFileDialog ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog( "Please select a file to x-ref", JobNumber.GetPath(form1.Value), "dwg", "DwgFileToLink", Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder ); var pr = ofd.ShowDialog(); if (pr == DialogResult.OK && !string.IsNullOrEmpty(ofd.Filename)) { AttachXRef(ofd.Filename); } form1.Dispose(); doc.Dispose(); }
private void OnAccept(object s, EventArgs e) { string jobNo = maskedTextBox1.Text; if (!JobNumber.TryParse(jobNo, out string jobNoFormated, JobNumberFormats.ShortHyphan)) { LblError.Visible = true; return; } string path = JobNumber.GetPath(jobNoFormated); if (string.IsNullOrEmpty(JobNumber.GetPath(jobNoFormated))) { LblError.Visible = true; return; } Value = jobNoFormated; Path = path; this.DialogResult = DialogResult.OK; this.Close(); }
public SelectionForm(string JobNu) { InitializeComponent(); string jobPath = JobNumber.GetPath(JobNu); if (string.IsNullOrEmpty(jobPath) || !Directory.Exists(jobPath)) { MessageBox.Show("Job folder does not exist, please save the file before trying to import field data."); this.DialogResult = DialogResult.Cancel; this.Close(); return; } if (!Directory.Exists(jobPath + @"\\Field Data")) { MessageBox.Show("No field data folder was detected, please check to ensure data is present."); this.DialogResult = DialogResult.Cancel; this.Close(); return; } LblJobNumber.Text = JobNumber.Parse(JobNu, JobNumberFormats.ShortHyphan); FolderPath = jobPath + @"\\Field Data"; Files = new List <string> { }; foreach (string file in Directory.GetFiles(FolderPath)) { if (Path.GetExtension(file).ToLower() == ".txt") { string fileName = Path.GetFileNameWithoutExtension(file); string name = fileName.Remove(0, 10); name = name.Remove(name.Length - 12, 12); string date = DateTime.Parse(fileName.Remove(0, fileName.Length - 9)).ToString("MM/dd/yy"); int pointCount = File.ReadAllLines(file).Length; DGVFiles.Rows.Add("", name, date, pointCount); Files.Add(file); } } }
static public void ExportPDF() { var doc = AcApp.DocumentManager.MdiActiveDocument; var ed = doc.Editor; ExportForm exportForm = new ExportForm(); var result = AcApp.ShowModalDialog(exportForm); if (result == DialogResult.Cancel) { ed.WriteMessage($"{Environment.NewLine}The operation has been canceled by the user."); return; } int layoutCount = exportForm.SelectedLayouts.Count; ed.WriteMessage($"{Environment.NewLine}Number of selected layouts: {layoutCount}"); if (layoutCount == 0) { ed.WriteMessage($"{Environment.NewLine}No layouts were detected."); return; } else if (layoutCount == 1) { if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting) { // First we preview... PreviewEndPlotStatus stat; PlotEngine pre = PlotFactory.CreatePreviewEngine((int)PreviewEngineFlags.Plot); using (pre) { stat = PlotOrPreview(pre, true, exportForm.SelectedLayouts[0].BlockTableRecordId, "", ""); } if (stat == PreviewEndPlotStatus.Plot) { // And if the user asks, we plot... var jobNumber = Path.GetFileNameWithoutExtension(doc.Name); if (jobNumber.Length > 9) { jobNumber = jobNumber.Remove(9); } if (!JobNumber.TryParse(jobNumber)) { ed.WriteMessage("Job number could not be determined." + Environment.NewLine); return; } string path = JobNumber.GetPath(jobNumber); if (Directory.Exists(path)) { if (!Directory.Exists(path + "\\Submittals")) { Directory.CreateDirectory(path + "\\Submittals"); } PlotEngine ple = PlotFactory.CreatePublishEngine(); PlotOrPreview(ple, false, exportForm.SelectedLayouts[0].BlockTableRecordId, path + "\\Submittals", jobNumber); ed.WriteMessage($"{Environment.NewLine}Plot created."); } else { ed.WriteMessage("Project folder could not be determined." + Environment.NewLine); } } } else { ed.WriteMessage( "\nAnother plot is in progress." ); } } else { ObjectIdCollection layouts = new ObjectIdCollection(); foreach (Layout layout in exportForm.SelectedLayouts) { layouts.Add(layout.BlockTableRecordId); } if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting) { int layoutNum = 0; bool isFinished = false; bool isReadyForPlot = false; while (!isFinished) { // Create the preview engine with the appropriate // buttons enabled - this depends on which // layout in the list is being previewed PreviewEngineFlags flags = PreviewEngineFlags.Plot; if (layoutNum > 0) { flags |= PreviewEngineFlags.PreviousSheet; } if (layoutNum < layouts.Count - 1) { flags |= PreviewEngineFlags.NextSheet; } using (PlotEngine pre = PlotFactory.CreatePreviewEngine((int)flags)) { PreviewEndPlotStatus stat = MultiplePlotOrPreview( pre, true, layouts, layoutNum, "", "" ); // We're not checking the list bounds for // next/previous as the buttons are only shown // when they can be used if (stat == PreviewEndPlotStatus.Next) { layoutNum++; } else if (stat == PreviewEndPlotStatus.Previous) { layoutNum--; } else if (stat == PreviewEndPlotStatus.Normal || stat == PreviewEndPlotStatus.Cancel) { isFinished = true; } else if (stat == PreviewEndPlotStatus.Plot) { isFinished = true; isReadyForPlot = true; } } } // If the plot button was used to exit the preview... if (isReadyForPlot) { var jobNumber = Path.GetFileNameWithoutExtension(doc.Name); if (jobNumber.Length > 9) { jobNumber = jobNumber.Remove(9); } if (!JobNumber.TryParse(jobNumber)) { ed.WriteMessage("Job number could not be determined." + Environment.NewLine); return; } string path = JobNumber.GetPath(jobNumber); if (Directory.Exists(path)) { if (!Directory.Exists(path + "\\Submittals")) { Directory.CreateDirectory(path + "\\Submittals"); } using (PlotEngine ple = PlotFactory.CreatePublishEngine()) { PreviewEndPlotStatus stat = MultiplePlotOrPreview(ple, false, layouts, -1, path + "\\Submittals", jobNumber); } } } } else { ed.WriteMessage( "\nAnother plot is in progress." ); } } exportForm.Dispose(); }
public int CompareTo(object obj) { return(JobNumber.CompareTo(((Job)obj).JobNumber)); }
public bool TryAddCharacter(string name, int attack, int magicDefense, int physicalDefense, int health, JobNumber jobNumber, int partyId) { Party partyToAddTo = Parties.Include(p => p.Characters).Where(p => p.Id == partyId).FirstOrDefault(); Character character = getImplementation(name, attack, magicDefense, physicalDefense, health, partyToAddTo, jobNumber); bool added = partyToAddTo.TryAddCharacter(character); if (added) { Entry(partyToAddTo).State = EntityState.Modified; } return(added); }
static Character getImplementation(string name, int baseAttack, int baseMagicDefense, int basePhysicalDefense, int baseMaximumHealth, Party party, JobNumber jobNumber) { Character character = null; switch (jobNumber) { case JobNumber.Hunter: character = new Hunter(name, baseAttack, baseMagicDefense, basePhysicalDefense, baseMaximumHealth, party); break; case JobNumber.Mage: character = new Hunter(name, baseAttack, baseMagicDefense, basePhysicalDefense, baseMaximumHealth, party); break; } return(character); }
public bool TryAddCharacter(string name, int attack, int magicDefense, int physicalDefense, int health, JobNumber jobNumber, int partyId) { return(context.TryAddCharacter(name, attack, magicDefense, physicalDefense, health, jobNumber, partyId)); }
public bool TryAddCharacter(string name, int attack, int magicDefense, int physicalDefense, int health, JobNumber jobNumber, int partyId) { List <Party> parties = getAllParties(); Party party = parties.Where(p => p.Id == partyId).FirstOrDefault(); party.TryAddCharacter(getImplementation(name, attack, magicDefense, physicalDefense, health, party, jobNumber)); return(true); }
public Hunter(int id, string name, int attack, int magicDefense, int physicalDefense, int maximumHealth, int baseAttack, int baseMagicDefense, int basePhysicalDefense, int baseMaximumHealth, bool attacksPhysical, JobNumber jobNumber, bool canUseSkill, int remainingHealth, bool fainted, int experiencePoints, int timesFainted, int charactersDefeated, int matchesWon) : base(id, name, attack, magicDefense, physicalDefense, maximumHealth, baseAttack, baseMagicDefense, basePhysicalDefense, baseMaximumHealth, attacksPhysical, jobNumber, canUseSkill, remainingHealth, fainted, experiencePoints, timesFainted, charactersDefeated, matchesWon) { this.JobNumber = JobNumber.Hunter; this.AttacksPhysical = true; }
public static void ExportPointGroups() { Document acDoc = AcApp.DocumentManager.MdiActiveDocument; Database acDb = acDoc.Database; Editor acEd = acDoc.Editor; CivilDocument cApp = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument; PointGroupCollection pointGroups; ExportPoints form; #region Job Number var jobNumber = Path.GetFileNameWithoutExtension(acDoc.Name); if (jobNumber.Length > 9) { jobNumber = jobNumber.Remove(9); } if (!JobNumber.TryParse(jobNumber)) { acEd.WriteMessage("Job number could not be determined." + Environment.NewLine); return; } string path = JobNumber.GetPath(jobNumber); if (!Directory.Exists(path)) { acEd.WriteMessage("Project folder could not be determined." + Environment.NewLine); } #endregion using (Transaction tr = acDb.TransactionManager.StartTransaction()) { pointGroups = cApp.PointGroups; form = new ExportPoints(pointGroups, path); var fResult = AcApp.ShowModalDialog(form); if (fResult == DialogResult.Cancel) { acEd.WriteMessage("\nExport operation cancelled."); return; } acEd.WriteMessage("\nExport operation continued."); if (!Directory.Exists(form.FolderPath)) { Directory.CreateDirectory(form.FolderPath); } string file = form.FolderPath + "\\" + form.FileName.Trim(); acEd.WriteMessage($"\nWriting {form.PointGroup} points to {file}"); switch (form.PointGroup.ToLower()) { case "!all points": { foreach (ObjectId pointId in cApp.CogoPoints) { CogoPoint point = (CogoPoint)pointId.GetObject(OpenMode.ForRead); string pointTxt = $"{point.PointNumber},{Math.Round(point.Northing, 4)},{Math.Round(point.Easting, 4)},{Math.Round(point.Elevation,4)},{point.RawDescription}{Environment.NewLine}"; File.AppendAllText(file, pointTxt); } break; } case "!comp points": { foreach (ObjectId pointId in cApp.CogoPoints) { CogoPoint point = (CogoPoint)pointId.GetObject(OpenMode.ForRead); int pnumber = Convert.ToInt32(point.PointNumber); if (pnumber >= 1000 && pnumber < 10000) { string pointTxt = $"{point.PointNumber},{Math.Round(point.Northing, 4)},{Math.Round(point.Easting, 4)},{Math.Round(point.Elevation, 4)},{point.RawDescription}{Environment.NewLine}"; File.AppendAllText(file, pointTxt); } } break; } case "!control points": { foreach (ObjectId pointId in cApp.CogoPoints) { CogoPoint point = (CogoPoint)pointId.GetObject(OpenMode.ForRead); string description = point.RawDescription; if (controlCodes.Any(s => description.Contains(s))) { string pointTxt = $"{point.PointNumber},{Math.Round(point.Northing, 4)},{Math.Round(point.Easting, 4)},{Math.Round(point.Elevation, 4)},{point.RawDescription}{Environment.NewLine}"; File.AppendAllText(file, pointTxt); } } break; } default: { foreach (ObjectId pgId in pointGroups) { PointGroup group = (PointGroup)pgId.GetObject(OpenMode.ForRead); if (group.Name.ToLower() == form.PointGroup.ToLower()) { var cogoPoints = group.GetCogoPoints(); acEd.WriteMessage($"\nPoint Group {form.PointGroup} contains {cogoPoints.Count} points"); foreach (CogoPoint point in cogoPoints) { string pointTxt = $"{point.PointNumber},{Math.Round(point.Northing, 4)},{Math.Round(point.Easting, 4)},{Math.Round(point.Elevation, 4)},{point.RawDescription}{Environment.NewLine}"; File.AppendAllText(file, pointTxt); } } } break; } } acEd.WriteMessage($"\nPoints exported successfully."); form.Dispose(); tr.Commit(); }; }
partial void OnLoaded() { JobNumber.CalculateSafetyIssueTotals(); // I needed to move this to the JobNumber partial class }
private void BtnSend_Click(object sender, EventArgs e) { try { try { foreach (var i in AssignJobP3Activity.WorkerList) { var parts = SmsManager.Default.DivideMessage(txtMsg.Text); SmsManager.Default.SendMultipartTextMessage(i.empMobile, null, parts, null, null); } } catch (Exception ex) { Toast.MakeText(this, "A message failed to send\n" + ex, ToastLength.Long).Show(); } Toast.MakeText(this, "Messages sent", ToastLength.Long).Show(); btnSend.Enabled = false; JobInstructions = txtMsg.Text.Split(new string[] { "Note:" }, StringSplitOptions.None).Last(); //NEEDSTEST JobsAssigned job = new JobsAssigned(); foreach (var worker in AssignJobP3Activity.WorkerList) { EmployeeJob emp1 = new EmployeeJob(); emp1.EmpNAME = worker.empNAME; job.EmployeeJobs.Add(emp1); } startTime = JobDate + "T" + JobTime; job.AssignJOBNUM = JobNumber.ToString(); job.AssignCLIENT = JobClient; job.AssignWORK = JobName; job.AssignAREA = JobArea; job.AssignINSTRUCTIONS = JobInstructions; job.AssignTRUCK = JobTruckNo; job.TextSENT = DateTime.Now.ToString("yyyy-MM-dd" + "T" + "HH:mm:ss"); job.AssignSTARTTIME = startTime; try { objJOBS.ExecutePostRequest(job); } catch (Exception ex) { Toast.MakeText(this, "Something went wrong:" + ex.Message, ToastLength.Long).Show(); } AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.SetMessage("Message sent and saved."); alertDialog.SetPositiveButton("New Message", delegate { StartActivity(typeof(AssignJobP2Activity)); alertDialog.Dispose(); }); alertDialog.SetNegativeButton("Menu", delegate { StartActivity(typeof(MainActivity)); alertDialog.Dispose(); }); alertDialog.Show(); } catch (Exception ex) { Toast.MakeText(this, "Something went wrong:" + ex.Message, ToastLength.Long).Show(); } }
public IActionResult SaveCharacter(string name, int attack, int magicDefense, int physicalDefense, int health, JobNumber jobNumber, int partyId) { repository.TryAddCharacter(name, attack, magicDefense, physicalDefense, health, jobNumber, partyId); repository.Complete(); return(RedirectToAction("PartyOverview")); }
private void ProcessJob(SubmissionDetails Details) { bool ApplyToAllFiles = false; int OverwriteAllFiles = -1; //0 = skip; 1 = overwrite; 2 = append //Run through for each job. foreach (string jobNumber in Details.JobNumbers) { string directoryBase = JobNumber.GetPath(jobNumber); string fieldDataFolder = directoryBase + "\\Field Data\\"; string imageFolder = fieldDataFolder + "\\Images\\"; string SenderInitials = GetInitials(Details.Sender); TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; string formattedPurpose = textInfo.ToTitleCase(Details.Purpose); for (int i = 0; i < Details.Files.Count; i++) { bool iterationDone = false; while (!iterationDone) { string sourceFile = Details.Files[i]; string fileFormat = $"{jobNumber} {formattedPurpose} {SenderInitials} {DateTime.Now:MM-dd-yy}{Path.GetExtension(sourceFile)}"; fileFormat = ValidatePathString(fileFormat); switch (Path.GetExtension(sourceFile)) { case ".jpg": case ".jpeg": case ".png": case ".tiff": { if (!Directory.Exists(imageFolder)) { if (!Directory.Exists(fieldDataFolder)) { Directory.CreateDirectory(fieldDataFolder); } Directory.CreateDirectory(imageFolder); } string targetFile = imageFolder + fileFormat; if (File.Exists(targetFile) && OverwriteAllFiles == -1) { FileExists exists = new FileExists(targetFile); var ret = exists.ShowDialog(); if (ret == DialogResult.Cancel) { MessageBox.Show("Operation cancelled. Please try again."); return; } if (exists.ConflictResult == FileConflictResult.Overwrite) { OverwriteAllFiles = 1; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } else if (exists.ConflictResult == FileConflictResult.Append) { OverwriteAllFiles = 2; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } else { OverwriteAllFiles = 0; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } } else if (File.Exists(targetFile) && OverwriteAllFiles == 1) { File.Copy(sourceFile, targetFile, true); iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else if (File.Exists(targetFile) && OverwriteAllFiles == 2) { int fileCopyCount = 1; bool FileCreated = false; while (!FileCreated) { string targetFormatUpdated = Path.GetFileNameWithoutExtension(targetFile) + $" ({fileCopyCount})"; string targetFileRevised = imageFolder + targetFormatUpdated + Path.GetExtension(targetFile); if (!File.Exists(targetFileRevised)) { File.Copy(sourceFile, targetFileRevised); FileCreated = true; } else { fileCopyCount++; } } iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else if (File.Exists(targetFile) && OverwriteAllFiles == 0) { iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else { File.Copy(sourceFile, targetFile, true); iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } break; } default: { if (!Directory.Exists(fieldDataFolder)) { Directory.CreateDirectory(fieldDataFolder); } string targetFile = fieldDataFolder + fileFormat; if (File.Exists(targetFile) && OverwriteAllFiles == -1) { FileExists exists = new FileExists(targetFile); var ret = exists.ShowDialog(); if (ret == DialogResult.Cancel) { MessageBox.Show("Operation cancelled. Please try again."); return; } if (exists.ConflictResult == FileConflictResult.Overwrite) { OverwriteAllFiles = 1; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } else if (exists.ConflictResult == FileConflictResult.Append) { OverwriteAllFiles = 2; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } else { OverwriteAllFiles = 0; if (exists.ApplyToAllFiles) { ApplyToAllFiles = true; } } } else if (File.Exists(targetFile) && OverwriteAllFiles == 1) { File.Copy(sourceFile, targetFile, true); iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else if (File.Exists(targetFile) && OverwriteAllFiles == 2) { int fileCopyCount = 1; bool FileCreated = false; while (!FileCreated) { string targetFormatUpdated = Path.GetFileNameWithoutExtension(targetFile) + $" ({fileCopyCount})"; string targetFileRevised = fieldDataFolder + targetFormatUpdated + Path.GetExtension(targetFile); if (!File.Exists(targetFileRevised)) { File.Copy(sourceFile, targetFileRevised); FileCreated = true; } else { fileCopyCount++; } } iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else if (File.Exists(targetFile) && OverwriteAllFiles == 0) { iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } else { File.Copy(sourceFile, targetFile, true); iterationDone = true; if (!ApplyToAllFiles) { ApplyToAllFiles = false; OverwriteAllFiles = -1; } } break; } } } } } }