Тема: C# задача
Зробити довідник автомобілів підприємства. В кожного автомобіля є марка, тип, колір та номерний знак. Врахувати що можуть бути абсолютно ідентичні автомобілі з різними номерними знаками. Уникнути дублювання даних. Зробити можливість додавати та видаляти як автомобілі так і їх моделі.
Ще треба зробити підключення до БД використовуючи entity framework. Так як в мене mac os, даний фреймворк використовувати стає складніше і без "танців з бубнами" нічого не вийде реалізувати. Можливо хтось стикався з подібним кейсом, підкажіть будь-ласка, як його налаштувати на mac os.
Підключення ms sql server налаштував з допомогою docker та azure data studio.
Залишається налаштувати entity framework
Є код.
Але є проблема в тому, що цей код потрібно переробити під даний кейс і він написаний на низькому рівні. Треба використати ООП. Що потрібно підправити, переробити щоб він відповідав завданню?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Авто
{
class Program
{
//simple list of models
static public List<string> Model = new List<string>();
//structure for the car
public struct Car
{
public string Number;//number off car
public string Model;//model
public string Color;//color
}
static public List<Car> Cars = new List<Car>();//list off cars
//add new model
static void AddModel()
{
string m;
Console.Write("new model: ");
m = Console.ReadLine().Trim().ToUpper();//removes if there are side spaces and uppercase
foreach(string md in Model)//enumeration of existing models
if (md == m)//this model already exists
{
Console.WriteLine("this model is already exists!");
return;
}
Model.Add(m);
}
//
static void ShowModel()
{
if (Model.Count > 0)
for (int i = 0; i < Model.Count; i++)//output models
Console.WriteLine("{0,2}) - {1}", i + 1, Model[i]);
else Console.WriteLine("Model list is empty!\n\n");
}
//delete model?
static void DelModel()
{
if (Model.Count > 0)//if we have some model
{
int i;
Console.Write("delete model(1-{0}): ", Model.Count);
int.TryParse(Console.ReadLine(), out i);
if (i > 0 && i <= Model.Count)
{
foreach(Car cr in Cars)
if (cr.Model == Model[i - 1])//suddenly there are cars of this model
{
Console.WriteLine("there are cars of this model!");
return;
}
Console.WriteLine("model {0} is deleted", Model[i - 1]);
Model.RemoveAt(i - 1);//deleted
}
else Console.WriteLine("no such model!");
}
else Console.WriteLine("the list off models is empty!\n\n");
}
//
static void AddCar()
{
if (Model.Count > 0)//if there are models
{
Console.Write("model(1-{0}): ", Model.Count);
int i;
int.TryParse(Console.ReadLine(), out i);
if (i < 1 || i > Model.Count)
{
Console.WriteLine("invalid model index!");
return;
}
Car cr;
cr.Model = Model[i - 1];
Console.Write("number: ");
cr.Number = Console.ReadLine().Trim().ToUpper();//removes if there are side spaces and uppercase
foreach(Car car in Cars)//we sort out cars
if (cr.Number == car.Number)//numbers matched
{
Console.WriteLine("A car with the same number already exists!");
return;
}
Console.Write("Цвет: ");
cr.Color = Console.ReadLine().Trim();
Cars.Add(cr);//added new car
}
else Console.WriteLine("There are no car models!");
}
//показывает машины
static void ShowCar()
{
if (Cars.Count > 0)//if there are cars
for (int i = 0; i < Cars.Count; i++)//showed all cars
Console.WriteLine("{0,2}) - №:{1} model:{2} color:{3}", i + 1, Cars[i].Number, Cars[i].Model, Cars[i].Color);
else Console.WriteLine("the list off cars is empty!\n\n");
}
//delete car
static void DelCar()
{
if (Cars.Count > 0)//if there are some cars
{
int i;
Console.Write("delete this car (1-{0}): ", Cars.Count);
int.TryParse(Console.ReadLine(), out i);
if (i > 0 && i <= Cars.Count)//delete this car
{
Console.WriteLine("this car {0} {1} {2} deleted",
Cars[i - 1].Number, Cars[i - 1].Model, Cars[i - 1].Color);
Cars.RemoveAt(i - 1);
}
else Console.WriteLine("no such car!");
}
else Console.WriteLine("!\n\n");
}
//
static void Main(string[] args)
{
Menu();
ConsoleKey ck;
do
{
ck = Console.ReadKey(true).Key;//if keydown
switch (ck)
{
//ConsoleKey.D1: keydown off key 1
case ConsoleKey.D1:
case ConsoleKey.NumPad1: AddModel();
break;
case ConsoleKey.D2:
case ConsoleKey.NumPad2: ShowModel();
break;
case ConsoleKey.D3:
case ConsoleKey.NumPad3: DelModel();
break;
case ConsoleKey.D4:
case ConsoleKey.NumPad4: AddCar();
break;
case ConsoleKey.D5:
case ConsoleKey.NumPad5: ShowCar();
break;
case ConsoleKey.D6:
case ConsoleKey.NumPad6: DelCar();
break;
case ConsoleKey.D0:
case ConsoleKey.NumPad0: Menu();
break;
}
} while (ck != ConsoleKey.Escape);//while esc not pressed
}
//
static void Menu()
{
Console.Clear();
Console.WriteLine(" 1 new model");
Console.WriteLine(" 2 watch all models");
Console.WriteLine(" 3 delete model");
Console.WriteLine(" 4 new car");
Console.WriteLine(" 5 watch all cars");
Console.WriteLine(" 6 delete car");
Console.WriteLine(" 0 clear screen");
Console.WriteLine("Esc exit");
}
}
}