19.03.2023 C#
Моя цель — изучить C# и поделиться своими знаниями с людьми. Я упомянул примеры с кодами комментариев.
Мы будем делать Новый Проект (Корпоративный Проект) в Реальной Жизни…!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Название проекта= RentCarProject(ReCapProject)
Требования:
-Создать новый проект как ReCapProject…
-Создайте слои Entities, DataAccess, Business и Console…
-Создать объект Автомобиль…
-Создайте эти методы (Id, BrandId, ColorId, ModelYear, DailyPrice, Description)…
-Выполнить тест в консоли...!
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
- Во-первых, мы выбираем пустое решение для нового проекта…!

Затем мы создаем ReCapProject…!

Затем мы хотим создать слои Business, DataAccess, Console и Entities в библиотеках классов…!

Затем мы создали их как библиотеку классов .Net Standards

Также Мы создали Файлы Тезисов и Конкретов в библиотеках…!

Затем мы создаем объекты «Автомобиль»…! в бетоне в библиотеке сущностей..!
public class Car:IEntity //Other class can reach this class..! others layers can reach here...!
{
public int Id { get; set; }
public int BrandId { get; set; }
public int ColorId { get; set; }
public int ModelYear { get; set; }
public decimal DailyPrice { get; set; }
public string Description { get; set; }
}
//Data Base Object
Public interface IEntity
{
}
Позже мы заполним эти классы, пока мы создаем проект…!Настоящий проект..!
Мы создали класс ICarDal для использования методов в информации о данных.

public interface ICarDal
{
List<Car> GetAll();
List<Car> GetById(int id);
void Add(Car car);
void Update(Car car);
void Delete(Car car);
}
Затем мы создали File this is Framework, который мы моделируем сейчас, а позже мы будем использовать фреймворк reel…
Затем мы создали новую структуру класса для информационной базы данных и наследуем ICarDal для добавления информации с помощью методов…
public class InMemoryCarDal : ICarDal
{
List<Car> _Car; //Global Variable,,,Name Convention...!
public InMemoryCarDal()
{//Oracle,Sql,Postgres,MongoDb we can see that...!
_Car=new List<Car> {
new Car() {BrandId=1,ColorId=1,Id=1,Description="Mercedes",ModelYear=2023,DailyPrice=10000 },
new Car() {BrandId=1,ColorId=2,Id=2,Description="Volkswagen",ModelYear=2022,DailyPrice=750 },
new Car() {BrandId=2,ColorId=3,Id=3,Description="Fiat",ModelYear=2021,DailyPrice=500 },
new Car() {BrandId=2,ColorId=4,Id=4,Description="Ford",ModelYear=2020,DailyPrice=300 },
};
}
public void Add(Car car)
{
_Car.Add(car); // we are taking from Business-UI we are adding the data base...!
}
public void Delete(Car car)
{
Car carToDelete = _Car.SingleOrDefault(c => c.Id == car.Id);
//Linq
_Car.Remove(carToDelete);
}
public List<Car> GetAll()
{
return _Car;
}
public List<Car> GetById(int id)
{
return _Car.Where(c=>c.Id==id).ToList();
}
public void Update(Car car)
{
Car carToUpdate =_Car.SingleOrDefault (c=> c.Id == car.Id );
carToUpdate.DailyPrice=car.DailyPrice;
carToUpdate.ModelYear = car.ModelYear;
carToUpdate.Description = car.Description;
carToUpdate.BrandId = car.BrandId;
carToUpdate.ColorId = car.ColorId;
}}
Затем мы создали ICarService и CarManager в Business, потому что с помощью операторов мы хотим что-то сделать… мы можем использовать вот так… например, мы хотим увидеть список автомобилей, давайте посмотрим…!

Давайте вспомним, что мы все написали общедоступную версию, чтобы использовать их, а Vs напрямую сделал общий, поэтому мы можем использовать его в этом интерфейсном классе…
public interface ICarService
{
List<Car> GetAll();
}
Тогда давайте использовать их ...!
Мы хотим использовать фреймворк для использования информации с методами, тогда мы не используем new, мы использовали конструкторы ICarDal… затем мы возвращаем метод GetAll для использования списка автомобилей в IU… Давайте посмотрим…!
public class CarManager : ICarService
{
ICarDal _carDal;
public CarManager(ICarDal carDal)
{
_carDal = carDal;
}
public List<Car> GetAll()
{
return _carDal.GetAll();
}
}
Мы использовали основной класс для пользовательского интерфейса (UI)

Мы создали новый в основном классе, чтобы использовать методы и информацию также для имитации…
Затем CarManager был обновлен, и мы использовали внутренний конструктор, поэтому мы использовали InMemoryCarDal Framework для использования информации об автомобилях…!
internal class Program
{
static void Main(string[] args)
{
CarManager carManager = new CarManager(new InMemoryCarDal());
foreach (var cars in carManager.GetAll())
{
Console.WriteLine(cars.Description);
}
}
}
Вывод
