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