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);
            }
            
        }
    }

Вывод