Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #502882 » Program.cs

Mykhailo Voronovskii, 2015-12-17 06:27 PM

 
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();
}
}
}
}
    (1-1/1)