|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Data.Entity;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Data.Entity.Validation;
|
|
|
|
namespace Laba5
|
|
{
|
|
class Program
|
|
{
|
|
static string choise, spreadsheet, firstP, secondP, thirdP;
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
|
|
using (var db = new DBLaba5())
|
|
{
|
|
do
|
|
{
|
|
Console.WriteLine("\n\t Menu:\n");
|
|
Console.WriteLine("\t1.Print DB\n\t2.Insert item\n\t3.Delete item");
|
|
Console.WriteLine("\t4.Modify item\n\t5.Exit\n");
|
|
Console.Write("Enter key:");
|
|
choise = Console.ReadLine();
|
|
switch (choise)
|
|
{
|
|
case "1":
|
|
PrintDB();
|
|
break;
|
|
|
|
case "2":
|
|
InsertItem();
|
|
break;
|
|
|
|
case "3":
|
|
DeleteItem();
|
|
break;
|
|
|
|
case "4":
|
|
ModifyItem();
|
|
break;
|
|
|
|
case "5":
|
|
Console.Write("Exiting...");
|
|
break;
|
|
|
|
default:
|
|
Console.Write("Wrong input.");
|
|
break;
|
|
}
|
|
}
|
|
while (choise != "5");
|
|
}
|
|
}
|
|
|
|
public static void PrintDB()
|
|
{
|
|
using (var db = new DBLaba5())
|
|
{
|
|
Console.WriteLine("\n\n\n\t Spreadsheets:\n");
|
|
Console.WriteLine("\t1.Vycladach\n\t2.Kafedra\n\t3.Instytut");
|
|
Console.Write("Enter key:");
|
|
spreadsheet = Console.ReadLine();
|
|
switch (spreadsheet)
|
|
{
|
|
case "1":
|
|
Console.WriteLine("\n\n----------------");
|
|
Console.WriteLine("|P.I.\tSubject|");
|
|
Console.WriteLine("----------------");
|
|
foreach (Vycladach vyc in db.Vycladaches)
|
|
{
|
|
Console.WriteLine(string.Format("{0}\t{1}", vyc.P_I_, vyc.Predmet));
|
|
}
|
|
|
|
break;
|
|
|
|
case "2":
|
|
/*Console.WriteLine("\n\n-----------------");
|
|
Console.WriteLine("|Name\tCabinet|");
|
|
Console.WriteLine("-----------------");
|
|
|
|
foreach (Kafedra kaf in db.Kafedra)
|
|
{
|
|
Console.WriteLine(string.Format("{0}\t{1}", kaf.Nazva, kaf.Corpus));
|
|
}*/
|
|
|
|
Console.WriteLine("\n\n------------------------");
|
|
Console.WriteLine("|Name\tCabinet\tDirector|");
|
|
Console.WriteLine("------------------------");
|
|
|
|
foreach (Kafedra kaf in db.Kafedras)
|
|
{
|
|
Console.WriteLine(string.Format("{0}\t{1}\t{2}", kaf.Nazva, kaf.Corpus, kaf.Director));
|
|
}
|
|
|
|
break;
|
|
|
|
case "3":
|
|
Console.WriteLine("\n\n------------------");
|
|
Console.WriteLine("|Name\tContacts|");
|
|
Console.WriteLine("------------------");
|
|
foreach (Instytut ins in db.Instytuts)
|
|
{
|
|
Console.WriteLine(string.Format("{0}\t{1}", ins.Nazva, ins.Contacty));
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
Console.Write("\n\nWrong input.\n\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void InsertItem()
|
|
{
|
|
using (var db = new DBLaba5())
|
|
{
|
|
Console.WriteLine("\n\n\n\t Spreadsheets:\n");
|
|
Console.WriteLine("\t1.Vycladach\n\t2.Kafedra\n\t3.Instytut");
|
|
Console.Write("Enter key:");
|
|
spreadsheet = Console.ReadLine();
|
|
switch (spreadsheet)
|
|
{
|
|
case "1":
|
|
Console.Write("P.I.: ");
|
|
firstP = Console.ReadLine();
|
|
Console.Write("Subject: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
var newVyc = new Vycladach { P_I_ = firstP, Predmet = secondP};
|
|
db.Vycladaches.Add(newVyc);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "2":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
Console.Write("Cabinet: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
Console.Write("Director: ");
|
|
thirdP = Console.ReadLine();
|
|
|
|
var newKaf = new Kafedra { Nazva = firstP, Corpus = secondP, Director = thirdP };
|
|
db.Kafedras.Add(newKaf);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "3":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
Console.Write("Contacts: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
var newIns = new Instytut { Nazva = firstP, Contacty = secondP };
|
|
db.Instytuts.Add(newIns);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
default:
|
|
Console.Write("\n\nWrong input.\n\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DeleteItem()
|
|
{
|
|
using (var db = new DBLaba5())
|
|
{
|
|
Console.WriteLine("\n\n\n\t Spreadsheets:\n");
|
|
Console.WriteLine("\t1.Vycladach\n\t2.Kafedra\n\t3.Instytut");
|
|
Console.Write("Enter key:");
|
|
spreadsheet = Console.ReadLine();
|
|
switch (spreadsheet)
|
|
{
|
|
case "1":
|
|
Console.Write("P.I.: ");
|
|
firstP = Console.ReadLine();
|
|
var vyc = new Vycladach() { P_I_ = firstP };
|
|
db.Vycladaches.Attach(vyc);
|
|
db.Vycladaches.Remove(vyc);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "2":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
var kaf = new Kafedra() { Nazva = firstP };
|
|
db.Kafedras.Attach(kaf);
|
|
db.Kafedras.Remove(kaf);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "3":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
var ins = new Instytut() { Nazva = firstP };
|
|
db.Instytuts.Attach(ins);
|
|
db.Instytuts.Remove(ins);
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
default:
|
|
Console.Write("\n\nWrong input.\n\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void ModifyItem()
|
|
{
|
|
using (var db = new DBLaba5())
|
|
{
|
|
Console.WriteLine("\n\n\n\t Spreadsheets:\n");
|
|
Console.WriteLine("\t1.Vycladach\n\t2.Kafedra\n\t3.Instytut");
|
|
Console.Write("Enter key:");
|
|
spreadsheet = Console.ReadLine();
|
|
switch (spreadsheet)
|
|
{
|
|
case "1":
|
|
Console.Write("P.I.: ");
|
|
firstP = Console.ReadLine();
|
|
var vyc = new Vycladach() { P_I_ = firstP };
|
|
Console.Write("New Subject: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
db.Vycladaches.Attach(vyc).Predmet = secondP;
|
|
|
|
string value = db.Entry(vyc).Property(m => m.Predmet).OriginalValue;
|
|
Console.WriteLine(string.Format("Original Value : {0}", value));
|
|
|
|
value = db.Entry(vyc).Property(m => m.Predmet).CurrentValue;
|
|
Console.WriteLine(string.Format("Current Value : {0}", value));
|
|
|
|
value = db.Entry(vyc).GetDatabaseValues().GetValue<string>("Predmet");
|
|
Console.WriteLine(string.Format("DB Value : {0}", value));
|
|
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "2":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
var kaf = new Kafedra() { Nazva = firstP };
|
|
Console.Write("New Cabinet: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
Console.Write("New Director: ");
|
|
thirdP = Console.ReadLine();
|
|
|
|
db.Kafedras.Attach(kaf).Corpus = secondP;
|
|
db.Kafedras.Attach(kaf).Director = thirdP;
|
|
|
|
value = db.Entry(kaf).Property(m => m.Corpus).OriginalValue;
|
|
Console.WriteLine(string.Format("Original Value : {0}", value));
|
|
value = db.Entry(kaf).Property(m => m.Director).OriginalValue;
|
|
Console.WriteLine(string.Format("Original Value : {0}", value));
|
|
|
|
value = db.Entry(kaf).Property(m => m.Corpus).CurrentValue;
|
|
Console.WriteLine(string.Format("Current Value : {0}", value));
|
|
value = db.Entry(kaf).Property(m => m.Director).CurrentValue;
|
|
Console.WriteLine(string.Format("Current Value : {0}", value));
|
|
|
|
value = db.Entry(kaf).GetDatabaseValues().GetValue<string>("Corpus");
|
|
Console.WriteLine(string.Format("DB Value : {0}", value));
|
|
value = db.Entry(kaf).GetDatabaseValues().GetValue<string>("Director");
|
|
Console.WriteLine(string.Format("DB Value : {0}", value));
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
case "3":
|
|
Console.Write("Name: ");
|
|
firstP = Console.ReadLine();
|
|
var ins = new Instytut() { Nazva = firstP };
|
|
Console.Write("New Contacts: ");
|
|
secondP = Console.ReadLine();
|
|
|
|
db.Instytuts.Attach(ins).Contacty = secondP;
|
|
|
|
value = db.Entry(ins).Property(m => m.Contacty).OriginalValue;
|
|
Console.WriteLine(string.Format("Original Value : {0}", value));
|
|
|
|
value = db.Entry(ins).Property(m => m.Contacty).CurrentValue;
|
|
Console.WriteLine(string.Format("Current Value : {0}", value));
|
|
|
|
value = db.Entry(ins).GetDatabaseValues().GetValue<string>("Contacty");
|
|
Console.WriteLine(string.Format("DB Value : {0}", value));
|
|
|
|
Validation(db);
|
|
break;
|
|
|
|
default:
|
|
Console.Write("\n\nWrong input.\n\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void Validation(DBLaba5 db)
|
|
{
|
|
try
|
|
{
|
|
db.SaveChanges();
|
|
}
|
|
catch (DbEntityValidationException ex)
|
|
{
|
|
var validationErrors = db.GetValidationErrors().Where(vr => !vr.IsValid).SelectMany(vr => vr.ValidationErrors);
|
|
|
|
foreach (var error in validationErrors)
|
|
{
|
|
Console.WriteLine(error.ErrorMessage);
|
|
}
|
|
|
|
Console.ReadKey();
|
|
}
|
|
}
|
|
}
|
|
}
|