public void UploadWoodRecords(iWood wood) { Console.WriteLine($"DATABASE WOODRECORDS: Started Writing woodrecords to database for {wood.Id}"); using (SqlConnection connection = GetConnection()) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)){ DataTable table = new DataTable(); table.Columns.Add("woodID", typeof(int)); table.Columns.Add("treeID", typeof(int)); table.Columns.Add("X", typeof(int)); table.Columns.Add("Y", typeof(int)); foreach (Tree tree in wood.Trees) { table.Rows.Add(wood.Id, tree.ID, tree.X, tree.Y); } bulkCopy.DestinationTableName = "WoodRecords"; bulkCopy.ColumnMappings.Add("woodID", "woodID"); bulkCopy.ColumnMappings.Add("treeID", "treeID"); bulkCopy.ColumnMappings.Add("X", "X"); bulkCopy.ColumnMappings.Add("Y", "Y"); bulkCopy.WriteToServer(table); } } Console.WriteLine($"DATABASE WOODRECORDS: Finished Writing woodrecords to database for {wood.Id}"); }
public void JumpToNextTree(iWood wood) { Tree currentTree = VisitedTrees[VisitedTrees.Count - 1]; int currentX = currentTree.X; int currentY = currentTree.Y; List <Tree> tempTrees = wood.Trees.Except(VisitedTrees).ToList(); tempTrees = tempTrees.OrderBy(t => Math.Sqrt(Math.Pow(t.X - currentX, 2) + Math.Pow(t.Y - currentY, 2))).ToList(); double distanceToBorder = (new List <Double>() { wood.MaximumY - currentY, wood.maximumX - currentX, currentY, currentX }).Min(); double distanceToClosestTree = Math.Sqrt(Math.Pow(tempTrees[0].X - currentX, 2) + Math.Pow(tempTrees[0].Y - currentY, 2)); if (distanceToBorder <= distanceToClosestTree) { HasEscaped(); } else { VisitedTrees.Add(tempTrees[0]); } }
public void UploadLogs(iWood wood) { Console.WriteLine($"DATABASE WOODLOGS: Started Writing woodlogs to database for {wood.Id}"); using (SqlConnection connection = GetConnection()) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { DataTable table = new DataTable(); table.Columns.Add("woodId", typeof(int)); table.Columns.Add("monkeyId", typeof(int)); table.Columns.Add("message", typeof(string)); foreach (Monkey monkey in wood.Monkeys) { foreach (Tree tree in monkey.VisitedTrees) { string log = $"{monkey.Name} is now in tree {tree.ID} at location ({tree.X},{tree.Y})."; table.Rows.Add(wood.Id, monkey.Id, log); } } bulkCopy.DestinationTableName = "Logs"; bulkCopy.ColumnMappings.Add("woodId", "woodId"); bulkCopy.ColumnMappings.Add("monkeyId", "monkeyId"); bulkCopy.ColumnMappings.Add("message", "message"); bulkCopy.WriteToServer(table); } } Console.WriteLine($"DATABASE WOODLOGS: finished Writing woodlogs to database for {wood.Id}"); }
public void WriteReport(iWood wood) { Console.WriteLine($"REPORT: started writing report for {wood.Id}"); using (StreamWriter writer = File.CreateText(Path.Combine(_reportsPath, $"Wood {wood.Id} Log.txt"))) { int treeStep = 0; int clearedMonkeys; do { clearedMonkeys = 0; foreach (Monkey monkey in wood.Monkeys) { if (treeStep < monkey.VisitedTrees.Count) { writer.WriteLine($"{monkey.Name} is in tree {monkey.VisitedTrees[treeStep].ID} at ({monkey.VisitedTrees[treeStep].X},{monkey.VisitedTrees[treeStep].Y})"); } else { clearedMonkeys++; } } treeStep++; } while (clearedMonkeys != wood.Monkeys.Count); } Console.WriteLine($"REPORT: finished writing report for {wood.Id}"); }
public void FillDataBase(iWood wood) { Console.WriteLine($"DATABASE: Started Writing to database for {wood.Id}"); UploadWoodRecords(wood); UploadMonkeyRecords(wood); UploadLogs(wood); Console.WriteLine($"DATABASE: Finished writing to database for {wood.Id}"); }
public void DrawMap(iWood wood) { Bitmap bm = new Bitmap(wood.maximumX * 10, wood.MaximumY * 10); Pen circleDrawer = new Pen(Color.DarkGreen); Pen[] pens = new Pen[10]; pens[0] = new Pen(Color.Purple, 4); pens[1] = new Pen(Color.Red, 4); pens[2] = new Pen(Color.Blue, 4); pens[3] = new Pen(Color.Yellow, 4); pens[4] = new Pen(Color.Lime, 4); pens[5] = new Pen(Color.Orange, 4); pens[6] = new Pen(Color.Aqua, 4); pens[7] = new Pen(Color.Beige, 4); pens[8] = new Pen(Color.Brown, 4); pens[9] = new Pen(Color.DarkBlue, 4); Brush[] brushes = new Brush[10]; brushes[0] = new SolidBrush(Color.Purple); brushes[1] = new SolidBrush(Color.Red); brushes[2] = new SolidBrush(Color.Blue); brushes[3] = new SolidBrush(Color.Yellow); brushes[4] = new SolidBrush(Color.Lime); brushes[5] = new SolidBrush(Color.Orange); brushes[6] = new SolidBrush(Color.Aqua); brushes[7] = new SolidBrush(Color.Beige); brushes[8] = new SolidBrush(Color.Brown); brushes[9] = new SolidBrush(Color.DarkBlue); using (Graphics g = Graphics.FromImage(bm)) { Console.WriteLine($"BITMAP: Started bitmap drawing for {wood.Id}"); //bomen tekenen foreach (Tree tree in wood.Trees) { g.DrawEllipse(circleDrawer, tree.X * 10, tree.Y * 10, 10, 10); } //voor elk aapje de tekening maken for (int i = 0; i < wood.Monkeys.Count; i++) { //beginboom g.FillEllipse(brushes[i % 10], wood.Monkeys[i].VisitedTrees[0].X * 10, wood.Monkeys[i].VisitedTrees[0].Y * 10, 10, 10); for (int index = 1; index < wood.Monkeys[i].VisitedTrees.Count; index++) { //lijnen tussen de bomen var temptrees = wood.Monkeys[i].VisitedTrees; g.DrawLine(pens[i % 10], temptrees[index - 1].X * 10 + 5, temptrees[index - 1].Y * 10 + 5, temptrees[index].X * 10 + 5, temptrees[index].Y * 10 + 5); } } } bm.Save(Path.Combine(_path, wood.Id.ToString() + " escapeRoutes.jpg"), ImageFormat.Jpeg); Console.WriteLine($"BITMAP: Finished bitmap drawing for {wood.Id}"); }
public void UploadMonkeyRecords(iWood wood) { Console.WriteLine($"DATABASE MONKEYRECORDS: Started Writing monkeyrecords to database for {wood.Id}"); using (SqlConnection connection = GetConnection()) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { DataTable table = new DataTable(); table.Columns.Add("monkeyID", typeof(int)); table.Columns.Add("monkeyName", typeof(string)); table.Columns.Add("woodID", typeof(int)); table.Columns.Add("seqnr", typeof(int)); table.Columns.Add("treeID", typeof(int)); table.Columns.Add("X", typeof(int)); table.Columns.Add("Y", typeof(int)); foreach (Monkey monkey in wood.Monkeys) { for (int i = 0; i < monkey.VisitedTrees.Count; i++) { table.Rows.Add(monkey.Id, monkey.Name, wood.Id, i, monkey.VisitedTrees[i].ID, monkey.VisitedTrees[i].X, monkey.VisitedTrees[i].Y); } } bulkCopy.DestinationTableName = "MonkeyRecords"; bulkCopy.ColumnMappings.Add("monkeyID", "monkeyID"); bulkCopy.ColumnMappings.Add("monkeyName", "monkeyName"); bulkCopy.ColumnMappings.Add("woodID", "woodID"); bulkCopy.ColumnMappings.Add("seqnr", "seqnr"); bulkCopy.ColumnMappings.Add("treeID", "treeID"); bulkCopy.ColumnMappings.Add("X", "X"); bulkCopy.ColumnMappings.Add("Y", "Y"); bulkCopy.WriteToServer(table); } } Console.WriteLine($"DATABASE MONKEYRECORDS: Finished Writing monkeyrecords to database for {wood.Id}"); }