19.03.2023 C#

Moim celem jest nauczyć się języka C# i dzielić się z innymi tym, czego się nauczyłem. Wspomniałem o przykładach z kodami komentarzy.

Nowy projekt (projekt korporacyjny) zrealizujemy w prawdziwym życiu…!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Nazwa projektu= RentCarProject(ReCapProject)

Wymagania:

-Utwórz nowy projekt jako projekt ReCap...

-Utwórz warstwy Entities, DataAccess, Business i Console…

-Utwórz obiekt Samochód...

-Utwórz te metody (Id, BrandId, ColorId, ModelYear, DailyPrice, Opis)…

-Wykonaj test w konsoli…!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

  • Najpierw wybieramy Puste Rozwiązanie do Nowego Projektu…!

Następnie tworzymy ReCapProject…!

Następnie chcemy utworzyć warstwy Business, DataAccess, Console i Entities w bibliotekach klas…!

Następnie stworzyliśmy je jako bibliotekę klas .Net Standards

Stworzyliśmy także pliki abstraktów i konkretów w bibliotekach…!

Następnie tworzymy obiekty „samochód”…! w betonie w Bibliotece Podmiotów..!

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 
    {
    }

Później uzupełnimy te zajęcia, właśnie tworzymy projekt…!Prawdziwy projekt..!

Stworzyliśmy klasę ICarDal do wykorzystania metod w informacjach o danych

public interface ICarDal
    {
        List<Car> GetAll();
        
        List<Car> GetById(int id);

        void Add(Car car);
        void Update(Car car);
        void Delete(Car car);

    }

Następnie stworzyliśmy plik, który teraz symulujemy, a później użyjemy frameworku Reel…

Następnie stworzyliśmy nowy framework klas do bazy danych informacji i dziedziczymy ICarDal, aby dodawać informacje za pomocą metod…

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;

        }}

Następnie stworzyliśmy ICarService i CarManager in Business, ponieważ używamy instrukcji co chcemy zrobić… możemy użyć w ten sposób… na przykład chcemy zobaczyć listę samochodów, zobaczmy to…!

Pamiętajmy, że wszyscy napisaliśmy publicznie, aby z nich korzystali, Vs bezpośrednio zrobił to ogólnie, dlatego możemy go używać w tej klasie interfejsu…

  public interface ICarService
    {
        List<Car> GetAll();
    }

Zatem wykorzystajmy je…!

Chcemy użyć frameworka do wykorzystania informacji za pomocą metod to nie używamy new, użyliśmy konstruktorów ICarDal… następnie zwracamy metodę GetAll aby skorzystać z listy samochodów w IU… Zobaczmy…!

public class CarManager : ICarService
    {

        ICarDal _carDal;

        public CarManager(ICarDal carDal)
        {
            _carDal = carDal;
        }

        public List<Car> GetAll()
        {
            return _carDal.GetAll();
        }
    }

Użyliśmy klasy głównej do interfejsu użytkownika (UI)

Stworzyliśmy nową klasę główną, aby używać metod i informacji również do symulacji…

Następnie odnowiono CarManager i użyliśmy wewnętrznego konstruktora, dlatego wykorzystaliśmy InMemoryCarDal Framework do wykorzystania informacji o samochodach…!

internal class Program
    {
        static void Main(string[] args)
        {

            CarManager carManager = new CarManager(new InMemoryCarDal());

            foreach (var cars in carManager.GetAll())
            {
                Console.WriteLine(cars.Description);
            }
            
        }
    }

Wyjście