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); } } }
Вывод