public async Task PutCarMakerAsync(int id, CarMaker carMaker)
        {
            var prevCarMaker = await GetCarMakerAsync(id);

            carMaker.ExclusiveKey = prevCarMaker.ExclusiveKey;

            var carMakerLangLogic = new CarMakerLangLogic(_context);
            await carMakerLangLogic.PutCarMakerLangAsync(carMaker.CarMakerLangs);

            var carProductLogic = new CarProductLogic(_context);
            await carProductLogic.PutCarProductAsync(carMaker.CarProducts);

            var carSalesYearLogic = new CarSalesYearLogic(_context);
            await carSalesYearLogic.PutCarSalesYearAsync(carMaker.CarSalesYears);

            _context.Entry(carMaker).State = EntityState.Modified;
            // _context.Update(carMaker);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }
        }
        public async Task <IActionResult> PutCarMaker(int id, CarMaker carMaker)
        {
            if (id != carMaker.MakerId)
            {
                return(BadRequest());
            }

            // _context.Entry(carMaker).State = EntityState.Modified;

            try
            {
                // await _context.SaveChangesAsync();
                await _logic.PutCarMakerAsync(id, carMaker);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CarMakerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #3
0
 public Car(Color bodyColor, BodyStyle bodyType, TransmissionType transmissionKind, CarMaker carCompany, DateTime yearCreated)
 {
     color            = bodyColor;
     bodyStyle        = bodyType;
     transmissionType = transmissionKind;
     carMaker         = carCompany;
     yearMade         = yearCreated;
 }
コード例 #4
0
ファイル: main.cs プロジェクト: maque/DesignPatterns
    public static void Main()
    {
        var threeWheelRedCar  = CarMaker.BuildCar(new ThreeWheelsRedCar());
        var fourWheelBlackCar = CarMaker.BuildCar(new FourWheelsBlackCar());

        threeWheelRedCar.display();
        fourWheelBlackCar.display();
    }
コード例 #5
0
ファイル: Program.cs プロジェクト: DeepSky8/carPOS
 public Car(Color bodyColor, BodyStyle bodyType, TransmissionType transmissionKind, CarMaker carCompany, DateTime yearCreated)
 {
     color = bodyColor;
     bodyStyle = bodyType;
     transmissionType = transmissionKind;
     carMaker = carCompany;
     yearMade = yearCreated;
 }
        public async Task <ActionResult <CarMaker> > PostCarMaker(CarMaker carMaker)
        {
            // _context.CarMaker.Add(carMaker);
            // await _context.SaveChangesAsync();
            await _logic.PostCarMakerAsync(carMaker);

            return(CreatedAtAction(nameof(GetCarMaker), new { id = carMaker.MakerId }, carMaker));
        }
コード例 #7
0
        public void Should_Return_A_AudiA4_Car()
        {
            //Arrange
            var builder = new AudiA4Builder();
            var maker   = new CarMaker();

            //Act
            var car = maker.Construct(builder);

            //Assert
            Assert.Equal("Audi A4", car.Model);
        }
コード例 #8
0
        private static void BuildVolkswagenCar()
        {
            Console.WriteLine("-> Start Volkswagen car builder <-");

            var carMaker3 = new CarMaker(new VolkswagenCarBuilder());

            carMaker3.BuildCar();
            var car3 = carMaker3.GetCar();

            car3.Display();

            Console.WriteLine("-> Start Volkswagen car builder <-");
            Console.WriteLine();
        }
コード例 #9
0
        private static void BuildAudiCar()
        {
            Console.WriteLine("-> Start Audi car builder <-");

            var carMaker2 = new CarMaker(new AudiCarBuilder());

            carMaker2.BuildCar();
            var car2 = carMaker2.GetCar();

            car2.Display();

            Console.WriteLine("-> End Audi car builder <-");
            Console.WriteLine();
        }
コード例 #10
0
        private static void BuildBmwCar()
        {
            Console.WriteLine("-> Start BMW car builder <-");

            var carMaker = new CarMaker(new BmwCarBuilder());

            carMaker.BuildCar();
            var car1 = carMaker.GetCar();

            car1.Display();

            Console.WriteLine("-> End BMW car builder <-");
            Console.WriteLine();
        }
コード例 #11
0
        public void BuildSportsCarTest()
        {
            var maker = new CarMaker(new SportsCarBuilder());

            maker.MakeCar();

            var car = maker.GetCar();

            Assert.Equal("Lotus", car.Brand);
            Assert.Equal(DoorType.Scissor, car.Door);
            Assert.Equal(240d, car.MaxSpeed);
            Assert.Equal(EngineType.Electric, car.Engine);
            Assert.Equal(2, car.NumberOfDoors);
            Assert.Equal(WheelType.Alloy, car.Wheels);
        }
コード例 #12
0
        public void BuildCheapCarTest()
        {
            var maker = new CarMaker(new CheapCarBuilder());

            maker.MakeCar();

            var car = maker.GetCar();

            Assert.Equal("Trabant", car.Brand);
            Assert.Equal(DoorType.Normal, car.Door);
            Assert.Equal(120d, car.MaxSpeed);
            Assert.Equal(EngineType.Benzin, car.Engine);
            Assert.Equal(3, car.NumberOfDoors);
            Assert.Equal(WheelType.Aluminium, car.Wheels);
        }
コード例 #13
0
        private static void callBuilderPattern()
        {
            CarMaker carMaker = new CarMaker(new FordBuilder());

            carMaker.BuildCar();
            var car1 = carMaker.GetCar();

            car1.PrintCar();

            CarMaker carMaker2 = new CarMaker(new HundaiBuilder());

            carMaker2.BuildCar();
            var car2 = carMaker2.GetCar();

            car2.PrintCar();
        }
コード例 #14
0
        public Car GetCar(CarMaker maker)
        {
            switch (maker)
            {
            case CarMaker.Bugatti:
                return(new Bugatti());

            case CarMaker.Ferrari:
                return(new Ferrari());

            case CarMaker.Honda:
                return(new Honda());

            case CarMaker.Toyota:
                return(new Toyota());

            default:
                throw new ArgumentOutOfRangeException(nameof(maker), maker, null);
            }
        }
コード例 #15
0
        static void CreateFordCars()
        {
            FordCar fordCar = new FordCar();

            fordCar.Name = "Ford Car Prototype";
            fordCar.Make = "FUSION";

            CarMaker       carMaker = new CarMaker(fordCar);
            List <FordCar> fordCars = new List <FordCar>();

            for (int i = 0; i < 5; i++)
            {
                FordCar newFordCar = (FordCar)carMaker.MakeCar();
                newFordCar.Name = newFordCar.Name.Replace("Prototype", $"No.{i + 1}");
                fordCars.Add(newFordCar);
            }

            foreach (var car in fordCars)
            {
                Console.WriteLine($"Made {car.Name} with ID = {car.ID}");
            }
        }
 public async Task PostCarMakerAsync(CarMaker carMaker)
 {
     _context.CarMaker.Add(carMaker);
     await _context.SaveChangesAsync();
 }
コード例 #17
0
        public CarPartsViewHelper AddEditPart(CarPartsViewHelper carPartsView)
        {
            bool wasNull = false;
            var  maker   = Entity.CarMakers.FirstOrDefault(m => m.Id == carPartsView.MakerId || m.CarMakerName == carPartsView.MakerName);

            if (maker == null)
            {
                maker = new CarMaker()
                {
                    CarMakerName = carPartsView.MakerName
                };
                wasNull = true;
            }

            var model = Entity.CarModels.FirstOrDefault(cm => cm.Id == carPartsView.ModelId);

            if (model == null)
            {
                model = new CarModel()
                {
                    ModelName    = carPartsView.Model,
                    CreationDate = carPartsView.CreationDate
                };
                if (wasNull)
                {
                    model.CarMaker = maker;
                }
                else
                {
                    model.CardMakerId = maker.Id;
                }
                wasNull = true;
            }
            else
            {
                wasNull = false;
            }

            var carPart = Entity.CarParts.FirstOrDefault(cp => cp.Id == carPartsView.PartId);

            if (carPart == null)
            {
                carPart = new CarPart()
                {
                    PartName     = carPartsView.PartName,
                    Quantity     = carPartsView.Quantity,
                    UniqueNumber = carPartsView.PartUniqueNumber
                };
                Entity.CarParts.Add(carPart);
            }
            else
            {
                carPart.Quantity     = carPartsView.Quantity;
                carPart.PartName     = carPartsView.PartName;
                carPart.UniqueNumber = carPartsView.PartUniqueNumber;
            }

            if (wasNull)
            {
                carPart.CarModel = model;
            }
            else
            {
                carPart.CarModelId = model.Id;
            }

            Entity.SaveChanges();
            carPartsView.PartId = carPart.Id;
            return(carPartsView);
        }