Compare commits

...

5 Commits

Author SHA1 Message Date
3ee4691a14 Opdracht 4a 2023-02-02 13:15:09 +01:00
bb30997ece updated gitignore 2023-02-02 11:00:21 +01:00
a53ceb2def Opdracht 3c 2023-02-02 10:26:01 +01:00
c65fcf6a22 Opdracht 3b 2023-01-26 13:42:36 +01:00
85749e927e updated gitignore to omit .vscode directory 2023-01-26 13:40:55 +01:00
7 changed files with 133 additions and 13 deletions

4
.gitignore vendored
View File

@ -9,6 +9,7 @@
*.user *.user
*.userosscache *.userosscache
*.sln.docstates *.sln.docstates
**/*/.vscode/
# User-specific files (MonoDevelop/Xamarin Studio) # User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs *.userprefs
@ -396,3 +397,6 @@ FodyWeavers.xsd
# JetBrains Rider # JetBrains Rider
*.sln.iml *.sln.iml
# App config file
OOP-Opdracht-CSharp-Alfa-2022/OOP-Opdracht-CSharp-Alfa-2022/App.config

View File

@ -8,6 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.0.1" /> <PackageReference Include="Microsoft.Data.SqlClient" Version="5.0.1" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -10,19 +10,72 @@ namespace OOP_Opdracht_CSharp_Alfa_2022
{ {
Console.WriteLine("Hello World!"); Console.WriteLine("Hello World!");
Opdracht2(); Opdracht2();
Opdracht3();
Opdracht3c();
Opdracht4();
} }
static void Opdracht2() static void Opdracht2()
{ {
Game game = new classes.Game(); Game game = new classes.Game("game"); // Init publisher class instance
var someRecord = game.find(1); var someRecord = game.find(1); // find specific record
Console.WriteLine($"Record 1 is equal to {someRecord}"); Console.WriteLine($"Record 1 is equal to {someRecord}");
var games = game.getTableData(); // Get the full dictionary and loop over each record
Dictionary<int, String> games = game.getTableData();
Console.WriteLine("Outputting Table Contents:"); Console.WriteLine("Outputting Table Contents:");
foreach (KeyValuePair<int, string> entry in games) foreach (KeyValuePair<int, string> entry in games)
{ {
Console.WriteLine($"Row with id {entry.Key} has value {entry.Value}"); Console.WriteLine($"Row with id {entry.Key} has value {entry.Value}"); // Output entry to Console
} }
Console.WriteLine($"Trying to fetch KeyValue with invalid id 5 {game.find(5)}"); Console.WriteLine($"Trying to fetch KeyValue with invalid id 5 {game.find(7)}"); // Attempt to find invalid record and output to Console
}
static void Opdracht3()
{
Publisher publisher = new Publisher("publisher"); // Init publisher class instance
var someRecord = publisher.find(1); // find specific record
Console.WriteLine($"Record 1 is equal to {someRecord}");
// Get the full dictionary and loop over each record
var publishers = publisher.getTableData();
Console.WriteLine("Outputting Table Contents:");
foreach (KeyValuePair<int, string> entry in publishers)
{
Console.WriteLine($"Row with id {entry.Key} has value {entry.Value}"); // Output entry to Console
}
Console.WriteLine($"Trying to fetch KeyValue with invalid id 5 {publisher.find(7)}"); // Attempt to find invalid record and output to Console
}
static void Opdracht3c()
{
Publisher publisher = new Publisher("publisher"); // Init publisher class instance
Dictionary<String, Model> tableDict = new Dictionary<string, Model>();
while(true){
String input;
// Ask user if they want to request a specific entry
Console.WriteLine("Would you like to look up a record? [Y/n]");
input = Console.ReadLine();
// Allow user to escape the loop
if(input == "n" || input == "N" || input == "no" || input == "NO" || input == "q"){
break;
}
Console.WriteLine("Please enter the id of the publisher you wish to look up");
input = Console.ReadLine();
int id = -1;
try{
id = int.Parse(input);
}
catch (FormatException)
{
Console.WriteLine("Invalid input for id. Please enter a positive Integer value (Whole number)");
}
if(id >= 0){
Console.WriteLine($"Record {id} is equal to {publisher.find(id)}");
}
}
}
public static void Opdracht4(){
Config config = Config.getInstance();
} }
} }
} }

View File

@ -0,0 +1,47 @@
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Configuration;
using System;
class Config{
private static Config instance = null;
private Dictionary<string,string> contents;
private Config(){
contents = GetSettings();
}
public static Config getInstance(){
if ( instance == null ) instance = new Config();
return instance;
}
Dictionary <string,string> GetSettings()
{
Dictionary<string,string> settings = new Dictionary<string, string>();
try
{
var appSettings = ConfigurationManager.AppSettings;
if (appSettings.Count == 0)
{
Console.WriteLine("AppSettings is empty.");
}
else
{
var keys = appSettings.AllKeys;
foreach(string key in keys){
String value = appSettings.GetValues(key).GetValue(0).ToString();
#if DEBUG
Console.WriteLine($"Debug: key {key} has value {value}");
#endif
settings.Add(key,value);
}
}
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
return settings;
}
}

View File

@ -13,13 +13,14 @@ namespace OOP_Opdracht_CSharp_Alfa_2022.classes
// Game class constructor // Game class constructor
public Game() public Game(String _tablename) : base(_tablename)
{ {
// Set the table name
if(this.table_data == null) table_data = new Dictionary<int, string>(); if(this.table_data == null) table_data = new Dictionary<int, string>();
this.table_data.Add(1, "Battlefield 2042"); String[] games = { "Battlefield 2042", "Counter-Strike: Global Offensive", "Quake III Arena", "Rust", "Starcraft II" };
this.table_data.Add(2, "Counter-Strike: Global Offensive"); for(int index = 1; index < games.Length+1; index++){
this.table_data.Add(3, "Rust"); this.table_data.Add(index, games[index-1]);
}
} }
} }

View File

@ -10,6 +10,12 @@ namespace OOP_Opdracht_CSharp_Alfa_2022.classes
protected SqlConnection connection; protected SqlConnection connection;
protected Dictionary<int, string> table_data; protected Dictionary<int, string> table_data;
protected KeyValuePair<int, string> record; protected KeyValuePair<int, string> record;
protected String tablename;
// Constructor
public Model(String _tablename){
this.tablename = _tablename;
}
// Define Getters and Setters // Define Getters and Setters
@ -23,6 +29,7 @@ namespace OOP_Opdracht_CSharp_Alfa_2022.classes
this.table_data = table_data; this.table_data = table_data;
return; return;
} }
// Record get/set methods // Record get/set methods
public void setRecord(int key, string value) public void setRecord(int key, string value)
{ {

View File

@ -6,10 +6,17 @@ namespace OOP_Opdracht_CSharp_Alfa_2022.classes
{ {
class Publisher : Model class Publisher : Model
{ {
public Publisher() public Publisher(String _tablename) : base(_tablename)
{ {
if (table_data == null) table_data = new Dictionary<int, string>(); // Set the table name
table_data.Add(1, "Electronic Arts"); this.tablename = "publisher";
// Initialize dictionary
if (this.table_data == null) this.table_data = new Dictionary<int, string>();
// Add the publishers to the dictionary
String[] publishers = { "Electronic Arts", "Valve", "id Software", "Facepunch Studios", "Activision Blizzard" };
for(int index = 1; index < publishers.Length+1; index++){
this.table_data.Add(index, publishers[index-1]);
}
} }
} }
} }