Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using MongoDB.Bson;
- using MongoDB.Driver;
- using System.Configuration;
- namespace mongoDB
- {
- class Classes
- {
- public int cl { get; set; }
- public string types { get; set; }
- public string country { get; set; }
- public int numGuns { get; set; }
- public int bore { get; set; }
- public int displacement { get; set; }
- }
- class Ships
- {
- public string name { get; set; }
- public int cl { get; set; }
- public DateTime launched { get; set; }
- }
- class Battles
- {
- public string name { get; set; }
- public DateTime date { get; set; }
- }
- class Outcomes
- {
- public string ship { get; set; }
- public string battle { get; set; }
- public string result { get; set; }
- }
- class Program
- {
- static string connectionString = "mongodb://localhost";
- static MongoClient client = new MongoClient(connectionString);
- static IMongoDatabase database = client.GetDatabase("mongo");
- private static async Task SaveClasses()
- {
- var collection = database.GetCollection<Classes>("Classes");
- Classes c1 = new Classes { cl = 1, types = "bb", country = "Russia", numGuns = 100, bore = 30, displacement = 120000 };
- Classes c2 = new Classes { cl = 2, types = "bb", country = "Russia", numGuns = 120, bore = 34, displacement = 140000 };
- Classes c3 = new Classes { cl = 3, types = "bc", country = "Russia", numGuns = 90, bore = 34, displacement = 140000 };
- Classes c4 = new Classes { cl = 1, types = "bb", country = "Germany", numGuns = 100, bore = 30, displacement = 120000 };
- Classes c5 = new Classes { cl = 2, types = "bb", country = "USA", numGuns = 220, bore = 34, displacement = 130000 };
- Classes c6 = new Classes { cl = 3, types = "bc", country = "USA", numGuns = 94, bore = 34, displacement = 100000 };
- Classes c7 = new Classes { cl = 1, types = "bb", country = "China", numGuns = 100, bore = 20, displacement = 25000 };
- Classes c8 = new Classes { cl = 2, types = "bb", country = "China", numGuns = 120, bore = 14, displacement = 121000 };
- Classes c9 = new Classes { cl = 3, types = "bc", country = "England", numGuns = 90, bore = 41, displacement = 140000 };
- await collection.InsertManyAsync(new[] { c1, c2, c3, c4, c5, c6, c7, c8, c9 });
- }
- private static async Task SaveShips()
- {
- var collection = database.GetCollection<Ships>("Ships");
- Ships s1 = new Ships { name = "ship1", cl = 1, launched = new DateTime(1941, 10, 10) };
- Ships s2 = new Ships { name = "ship2", cl = 1, launched = new DateTime(1934, 03, 12) };
- Ships s3 = new Ships { name = "ship3", cl = 2, launched = new DateTime(1934, 01, 01) };
- Ships s4 = new Ships { name = "ship4", cl = 2, launched = new DateTime(1935, 10, 02) };
- Ships s5 = new Ships { name = "ship5", cl = 3, launched = new DateTime(1941, 03, 11) };
- Ships s6 = new Ships { name = "ship6", cl = 3, launched = new DateTime(1942, 10, 02) };
- Ships s7 = new Ships { name = "ship7", cl = 3, launched = new DateTime(1939, 09, 11) };
- Ships s8 = new Ships { name = "ship8", cl = 4, launched = new DateTime(1930, 10, 02) };
- Ships s9 = new Ships { name = "ship9", cl = 5, launched = new DateTime(1933, 10, 02) };
- Ships s10 = new Ships { name = "ship10", cl = 6, launched = new DateTime(1935, 05, 03) };
- Ships s11 = new Ships { name = "ship11", cl = 7, launched = new DateTime(1935, 09, 11) };
- Ships s12 = new Ships { name = "ship12", cl = 7, launched = new DateTime(1936, 05, 03) };
- Ships s13 = new Ships { name = "ship13", cl = 8, launched = new DateTime(1938, 08, 14) };
- Ships s14 = new Ships { name = "ship14", cl = 9, launched = new DateTime(1938, 09, 11) };
- Ships s15 = new Ships { name = "ship15", cl = 9, launched = new DateTime(1939, 10, 02) };
- Ships s16 = new Ships { name = "ship16", cl = 9, launched = new DateTime(1930, 10, 02) };
- await collection.InsertManyAsync(new[] { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16 });
- }
- private static async Task SaveBattles()
- {
- var collection = database.GetCollection<Battles>("Battles");
- Battles b1 = new Battles { name = "Какое-то", date = (new DateTime(1942, 09, 11)) };
- Battles b2 = new Battles { name = "Яванское", date = (new DateTime(1942, 09, 12)) };
- Battles b3 = new Battles { name = "Филиппинское", date = (new DateTime(1942, 05, 03)) };
- Battles b4 = new Battles { name = "Тулон", date = (new DateTime(1942, 01, 01)) };
- Battles b5 = new Battles { name = "Трудная работа", date = (new DateTime(1945, 09, 10)) };
- Battles b6 = new Battles { name = "Битва за Британию", date = (new DateTime(1940, 08, 05)) };
- Battles b7 = new Battles { name = "Битва за Москву", date = (new DateTime(1941, 02, 01)) };
- Battles b8 = new Battles { name = "Белорусская операция", date = (new DateTime(1944, 07, 05)) };
- Battles b9 = new Battles { name = "Битва под Монте,Кассино", date = (new DateTime(1944, 07, 15)) };
- await collection.InsertManyAsync(new[] { b1, b2, b3, b4, b5, b6, b7, b8, b9 });
- }
- private static async Task SaveOutcomes()
- {
- var collection = database.GetCollection<Outcomes>("Outcomes");
- Outcomes o1 = new Outcomes { ship = "ship2", battle = "Битва за Британию", result = "OK" };
- Outcomes o2 = new Outcomes { ship = "ship1", battle = "Яванское", result = "ok" };
- Outcomes o3 = new Outcomes { ship = "ship1", battle = "Белорусская операция", result = "sunk" };
- Outcomes o4 = new Outcomes { ship = "ship3", battle = "Тулон", result = "sunk" };
- Outcomes o5 = new Outcomes { ship = "ship4", battle = "Трудная работа", result = "OK" };
- Outcomes o6 = new Outcomes { ship = "ship5", battle = "Филиппинское", result = "OK" };
- Outcomes o7 = new Outcomes { ship = "ship5", battle = "Филиппинское", result = "OK" };
- Outcomes o8 = new Outcomes { ship = "ship5", battle = "Трудная работа", result = "OK" };
- Outcomes o9 = new Outcomes { ship = "ship6", battle = "Битва под Монте-Кассино", result = "sunk" };
- Outcomes o10 = new Outcomes { ship = "ship7", battle = "Белорусская операция", result = "damaged" };
- Outcomes o11 = new Outcomes { ship = "ship8", battle = "Белорусская операция", result = "OK" };
- Outcomes o12 = new Outcomes { ship = "ship9", battle = "Тулон", result = "damaged" };
- Outcomes o13 = new Outcomes { ship = "ship10", battle = "Белорусская операция", result = "sunk" };
- Outcomes o14 = new Outcomes { ship = "ship11", battle = "Тулон", result = "damaged" };
- Outcomes o15 = new Outcomes { ship = "ship12", battle = "Битва под Монте-Кассино", result = "sunk" };
- Outcomes o16 = new Outcomes { ship = "ship13", battle = "Тулон", result = "OK" };
- Outcomes o17 = new Outcomes { ship = "ship14", battle = "Битва под Монте-Кассино", result = "damaged" };
- Outcomes o18 = new Outcomes { ship = "ship15", battle = "Битва под Монте-Кассино", result = "sunk" };
- Outcomes o19 = new Outcomes { ship = "ship16", battle = "Тулон", result = "damaged" };
- Outcomes o20 = new Outcomes { ship = "ship16", battle = "Белорусская операция", result = "sunk" };
- await collection.InsertManyAsync(new[] { o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14, o15, o16, o17, o18, o19, o20 });
- }
- private static async Task ShowDoc(string s)
- {
- var collection = database.GetCollection<BsonDocument>(s);
- var filter = new BsonDocument();
- var document = await collection.Find(filter).ToListAsync();
- foreach (var doc in document)
- {
- Console.WriteLine(doc);
- }
- }
- private static async Task UpdateDoc(string s)
- {
- var collection = database.GetCollection<BsonDocument>(s);
- string fieldOld = "";
- string fieldNew = "";
- string getS = "";
- string setS = "";
- Console.WriteLine("fieldOld: ");
- fieldOld = Console.ReadLine();
- Console.WriteLine("getS: ");
- getS = Console.ReadLine();
- Console.WriteLine("fieldNew: ");
- fieldNew = Console.ReadLine();
- Console.WriteLine("setS: ");
- setS = Console.ReadLine();
- var result = await collection.UpdateOneAsync(
- new BsonDocument(fieldOld, getS),
- new BsonDocument("$set", new BsonDocument(fieldNew, setS))
- );
- Console.WriteLine("найдено по соответствию: {0}; обновлено: {1}", result.MatchedCount, result.ModifiedCount);
- }
- private static async Task DeleteDoc(string s)
- {
- string str;
- if (s == "Outcomes")
- {
- Console.WriteLine("Delete from Outcomes, where ship = ");
- str = Console.ReadLine();
- var collection = database.GetCollection<Outcomes>(s);
- await collection.DeleteOneAsync(o => o.ship == str);
- }
- else if (s == "Battles")
- {
- Console.WriteLine("Delete from Battles, where name = ");
- str = Console.ReadLine();
- var collection = database.GetCollection<Battles>(s);
- await collection.DeleteOneAsync(b => b.name == str);
- }
- else if (s == "Ships")
- {
- Console.WriteLine("Delete from Ships, where name = ");
- str = Console.ReadLine();
- var collection = database.GetCollection<Ships>(s);
- await collection.DeleteOneAsync(sh => sh.name == str);
- }
- else if (s == "Classes")
- {
- Console.WriteLine("Delete from Classes, where cl = ");
- str = Console.ReadLine();
- var collection = database.GetCollection<Classes>(s);
- await collection.DeleteOneAsync(c => c.cl == Convert.ToInt32(str));
- }
- }
- private static async Task InsertDoc(string s)
- {
- if (s == "Outcomes")
- {
- Console.Write("Enter ship: ");
- string shipS = Console.ReadLine();
- Console.Write("Enter battle: ");
- string battleS = Console.ReadLine();
- Console.Write("Enter result: ");
- string resultS = Console.ReadLine();
- var collection = database.GetCollection<Outcomes>(s);
- Outcomes o = new Outcomes { ship = shipS, battle = battleS, result = resultS };
- await collection.InsertOneAsync(o);
- }
- else if (s == "Battles")
- {
- var collection = database.GetCollection<Battles>("Battles");
- Console.Write("Enter name: ");
- string nameS = Console.ReadLine();
- Console.Write("Enter date: ");
- DateTime dateS = Convert.ToDateTime(Console.ReadLine());
- Battles b = new Battles { name = nameS, date = dateS };
- await collection.InsertOneAsync(b);
- }
- else if (s == "Ships")
- {
- var collection = database.GetCollection<Ships>("Ships");
- Console.Write("Enter name: ");
- string nameS = Console.ReadLine();
- Console.Write("Enter class: ");
- int clS = Convert.ToInt32(Console.ReadLine());
- Console.Write("Enter date launched: ");
- DateTime launchedS = Convert.ToDateTime(Console.ReadLine());
- Ships sh = new Ships { name = nameS, cl = clS, launched = launchedS };
- await collection.InsertOneAsync(sh);
- }
- else if (s == "Classes")
- {
- var collection = database.GetCollection<Classes>("Classes");
- Console.Write("Enter class: ");
- int clS = Convert.ToInt32(Console.ReadLine());
- Console.Write("Enter type: ");
- string typesS = Console.ReadLine();
- Console.Write("Enter country: ");
- string countryS = Console.ReadLine();
- Console.Write("Enter numGuns: ");
- int numGunsS = Convert.ToInt32(Console.ReadLine());
- Console.Write("Enter bore: ");
- int boreS = Convert.ToInt32(Console.ReadLine());
- Console.Write("Enter displacement: ");
- int displacementS = Convert.ToInt32(Console.ReadLine());
- Classes c = new Classes { cl = clS, types = typesS, country = countryS, numGuns = numGunsS, bore = boreS, displacement = displacementS };
- await collection.InsertOneAsync(c);
- }
- }
- private static async Task FindDoc(string s)
- {
- Console.Write("Enter field, where will find: ");
- string f = Console.ReadLine();
- Console.Write("Enter search string: ");
- string searchStr = Console.ReadLine();
- var collection = database.GetCollection<BsonDocument>(s);
- var filter = Builders<BsonDocument>.Filter.Regex(f, new BsonRegularExpression(searchStr));
- var document = await collection.Find(filter).ToListAsync();
- foreach (var doc in document)
- {
- Console.WriteLine(doc);
- }
- }
- static void Insert()
- {
- int insertM = 1;
- while (insertM != 0)
- {
- Console.WriteLine("1: Insert Classes\n2: Insert Ships\n3: Insert Battles\n4: Insert Outcomes\n0: Exit");
- insertM = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (insertM)
- {
- case 1:
- InsertDoc("Classes").GetAwaiter().GetResult();
- break;
- case 2:
- InsertDoc("Ships").GetAwaiter().GetResult();
- break;
- case 3:
- InsertDoc("Battles").GetAwaiter().GetResult();
- break;
- case 4:
- InsertDoc("Outcomes").GetAwaiter().GetResult();
- break;
- default:
- break;
- }
- }
- }
- static void Show()
- {
- int findM = 1;
- while (findM != 0)
- {
- Console.WriteLine("1: Show Classes\n2: Show Ships\n3: Show Battles\n4: Show Outcomes\n0: Exit");
- findM = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (findM)
- {
- case 1:
- ShowDoc("Classes").GetAwaiter().GetResult();
- break;
- case 2:
- ShowDoc("Ships").GetAwaiter().GetResult();
- break;
- case 3:
- ShowDoc("Battles").GetAwaiter().GetResult();
- break;
- case 4:
- ShowDoc("Outcomes").GetAwaiter().GetResult();
- break;
- default:
- break;
- }
- }
- }
- static void Update()
- {
- int updateM = 1;
- while (updateM != 0)
- {
- Console.WriteLine("1: Update Classes\n2: Update Ships\n3: Update Battles\n4: Update Outcomes\n0: Exit");
- updateM = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (updateM)
- {
- case 1:
- UpdateDoc("Classes").GetAwaiter().GetResult();
- break;
- case 2:
- UpdateDoc("Ships").GetAwaiter().GetResult();
- break;
- case 3:
- UpdateDoc("Battles").GetAwaiter().GetResult();
- break;
- case 4:
- UpdateDoc("Outcomes").GetAwaiter().GetResult();
- break;
- default:
- break;
- }
- }
- }
- static void Delete()
- {
- int deleteM = 1;
- while (deleteM != 0)
- {
- Console.WriteLine("1: Delete Classes\n2: Delete Ships\n3: Delete Battles\n4: Delete Outcomes\n0: Exit");
- deleteM = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (deleteM)
- {
- case 1:
- DeleteDoc("Classes").GetAwaiter().GetResult();
- break;
- case 2:
- DeleteDoc("Ships").GetAwaiter().GetResult();
- break;
- case 3:
- DeleteDoc("Battles").GetAwaiter().GetResult();
- break;
- case 4:
- DeleteDoc("Outcomes").GetAwaiter().GetResult();
- break;
- default:
- break;
- }
- }
- }
- static void Find()
- {
- int findM = 1;
- while (findM != 0)
- {
- Console.WriteLine("1: Find Classes\n2: Find Ships\n3: Find Battles\n4: Find Outcomes\n0: Exit");
- findM = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (findM)
- {
- case 1:
- FindDoc("Classes").GetAwaiter().GetResult();
- break;
- case 2:
- FindDoc("Ships").GetAwaiter().GetResult();
- break;
- case 3:
- FindDoc("Battles").GetAwaiter().GetResult();
- break;
- case 4:
- FindDoc("Outcomes").GetAwaiter().GetResult();
- break;
- default:
- break;
- }
- }
- }
- static void Main(string[] args)
- {
- int menu = 1;
- while (menu != 0)
- {
- Console.WriteLine("1: Show \n2: Insert\n3: Update\n4: Delete\n5: Find\n0: Exit");
- menu = Convert.ToInt32(Console.ReadLine());
- Console.Clear();
- switch (menu)
- {
- case 1:
- Show();
- break;
- case 2:
- Insert();
- break;
- case 3:
- Update();
- break;
- case 4:
- Delete();
- break;
- case 5:
- Find();
- break;
- default:
- break;
- }
- }
- }
- //SaveOutcomes().GetAwaiter().GetResult();
- //SaveBattles().GetAwaiter().GetResult();
- //SaveShips().GetAwaiter().GetResult();
- //SaveClasses().GetAwaiter().GetResult();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement