示例#1
0
        public async void AddCar(Car car)
        {
            var mapper = new CarMapper();
            var newCar = mapper.MapToServiceModel(car);

            await client.AddCarAsync(newCar);
        }
示例#2
0
 public CarService(CarFactory carFactory,
                   ICarRentalUnitOfWork unitOfWork, CarMapper carMapper)
 {
     _carMapper  = carMapper;
     _unitOfWork = unitOfWork;
     _carFactory = carFactory;
 }
示例#3
0
        public SimpleTestContainer()
        {
            var domainEventPublisher = new SimpleEventPublisher();

            var uoW = new MemoryCarRentalUoW(
                new MemoryRepository <Driver>(),
                new MemoryRepository <Car>(),
                new MemoryRepository <Rental>(),
                new MemoryRepository <Office>()
                );

            var freeMinutesPolicyFactory = new FreeMinutesPolicy();
            var rentalFactory            = new RentalFactory(domainEventPublisher);

            var carMapper    = new CarMapper();
            var driverMapper = new DriverMapper();
            var rentalMapper = new RentalMapper();
            var officeMapper = new OfficeMapper();


            DriverService       = new DriverService(uoW, driverMapper, domainEventPublisher);
            CarService          = new CarService(uoW, carMapper, domainEventPublisher);
            RentalService       = new RentalService(uoW, rentalMapper, domainEventPublisher, rentalFactory, freeMinutesPolicyFactory);
            FinishRentalService = new StopRentalService(uoW, domainEventPublisher);
            OfficeService       = new OfficeService(uoW, officeMapper, domainEventPublisher);
        }
示例#4
0
 public CarService(ICarRentalUnitOfWork unitOfWork,
                   CarMapper carMapper,
                   IDomainEventPublisher domainEventPublisher)
 {
     this._unitOfWork           = unitOfWork;
     this._carMapper            = carMapper;
     this._domainEventPublisher = domainEventPublisher;
 }
示例#5
0
        public async void UpdateCar(Car car)
        {
            CarMapper mapper    = new CarMapper();
            var       uptadeCar = mapper.MapToServiceModel(car);

            await client.UpdateCarAsync(uptadeCar);

            client.Close();
        }
 public HomeController(ILogger <HomeController> logger,
                       IServiceProvider serviceProvider,
                       ICarsRepository carsRepository,
                       CarMapper carMapper)
 {
     _logger          = logger;
     mServiceProvider = serviceProvider;
     mCarsRepository  = carsRepository;
     mCarMapper       = carMapper;
 }
示例#7
0
        public async Task <IActionResult> CreateAsync([FromBody] InCarDTO carDTO)
        {
            var car = CarMapper.Map(carDTO);

            car = _repositoryManager.CarRepository.Create(car);

            await _repositoryManager.SaveAsync();

            return(Ok(CarMapper.Map(car)));
        }
示例#8
0
        public async Task <IActionResult> GetAsync([FromRoute] int id)
        {
            var car = await _repositoryManager.CarRepository.GetAsync(id);

            if (car == null)
            {
                return(NotFound());
            }

            return(Ok(CarMapper.CompleteMap(car)));
        }
        public SimpleTestContainer()
        {
            // domain event publisher
            var domainEventPublisher = new SimpleEventPublisher();

            // infrastructure service
            var emaildispatcher = new EmailDispatcher();

            // event listeners
            var driverCreatedEventListener = new DriverCreatedEventListener();

            domainEventPublisher.Subscribe <DriverCreatedEvent>(driverCreatedEventListener);

            //unitOfWork
            var unitOfWork = new MemoryCarRentalUnitOfWork(
                new MemoryRepository <Driver>(),
                new MemoryRepository <Car>(),
                new MemoryRepository <Rental>(),
                new MemoryRepository <Scooter>());

            // factories
            var rentalFactory      = new RentalFactory(domainEventPublisher);
            var carFactory         = new CarFactory(domainEventPublisher);
            var freeMinutesFactory = new FreeMinutesFactory();

            // mappers
            var carMapper     = new CarMapper();
            var driverMapper  = new DriverMapper();
            var scooterMapper = new ScooterMapper();
            var rentalMapper  = new RentalMapper();

            this.CarService = new CarService(
                unitOfWork,
                carMapper,
                domainEventPublisher);

            this.ScooterService = new ScooterService(
                unitOfWork,
                scooterMapper,
                domainEventPublisher);

            this.DriverService = new DriverService(
                unitOfWork,
                driverMapper,
                domainEventPublisher);

            this.RentalService = new RentalService(
                unitOfWork,
                rentalFactory,
                rentalMapper,
                freeMinutesFactory,
                domainEventPublisher);
        }
示例#10
0
        public async Task <IActionResult> GetAssignedCarAsync()
        {
            var userId = HttpContext.User.GetUserId();

            var car = await _repositoryManager.CarRepository.GetAssignedCarAsync(userId.Value);

            if (car == null)
            {
                return(NotFound());
            }

            return(Ok(CarMapper.CompleteMap(car)));
        }
示例#11
0
        public void CarMapperTest()
        {
            _carMapper = new CarMapper();
            var data = _carMapper.GetCars(Vehicles());

            Assert.AreEqual(2, data.Count);

            db.Rows.Add("4", "BMW", "7", "5", "100l", null, "Car");
            getVehicles();
            var newData = _carMapper.GetCars(Vehicles());

            Assert.AreEqual(3, newData.Count);
        }
示例#12
0
 /// <summary>
 /// Get all car records
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Car> GetAllCars()
 {
     using (var command = new SqlCommand("sp_GetAllCars", _connection))
     {
         var carsList = new List <Car>();
         command.CommandType = CommandType.StoredProcedure;
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 var car = CarMapper.Map(reader);
                 carsList.Add(car);
             }
         }
         return(carsList);
     }
 }
示例#13
0
        public async Task <IActionResult> UpdateAsync([FromRoute] int id,
                                                      [FromBody] InCarDTO carDTO)
        {
            var car = await _repositoryManager.CarRepository.GetAsync(id);

            if (car == null)
            {
                return(NotFound());
            }

            car.Update(carDTO);

            _repositoryManager.CarRepository.Update(car);

            await _repositoryManager.SaveAsync();

            return(Ok(CarMapper.Map(car)));
        }
示例#14
0
 /// <summary>
 /// Get car by id
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public Car GetCarById(int id)
 {
     using (var command = new SqlCommand("sp_GetCarById", _connection))
     {
         command.CommandType = CommandType.StoredProcedure;
         command.Parameters.AddWithValue("@CarID", id);
         var findCar = new Car();
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 var car = CarMapper.Map(reader);
                 findCar = car;
             }
         }
         return(findCar);
     }
 }
示例#15
0
 public bool IsCarIdBooked(int id)
 {
     using (var command = new SqlCommand("sp_GetCarById", _connection))
     {
         command.CommandType = CommandType.StoredProcedure;
         command.Parameters.AddWithValue("@CarID", id);
         var car = new Car();
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 car = CarMapper.Map(reader);
             }
         }
         if (car.Id == id)
         {
             return(true);
         }
     }
     return(false);
 }
示例#16
0
        public TestContainer()
        {
            UnitOfWork = new MemoryCarRentalUnitOfWork();

            var carFactory    = new CarFactory();
            var driverFactory = new DriverFactory();

            _rentalFactory = new RentalFactory();
            var rentalAreaFactory = new RentalAreaFactory();

            var positionService = new PositionService(UnitOfWork);

            var carMapper    = new CarMapper();
            var driverMapper = new DriverMapper();

            _rentalMapper = new RentalMapper();
            var rentalAreaMapper = new RentalAreaMapper();

            CarService        = new CarService(carFactory, UnitOfWork, carMapper);
            DriverService     = new DriverService(driverFactory, UnitOfWork, driverMapper);
            RentalService     = new RentalService(_rentalFactory, UnitOfWork, _rentalMapper, positionService);
            RentalAreaService = new RentalAreaService(rentalAreaFactory, UnitOfWork, rentalAreaMapper);
        }
示例#17
0
        private void buttonAddAuto_Click(object sender, EventArgs e)
        {
            if (textBoxGosNumb.Text.Length == 0 || comboBoxAuto.Text.Length == 0 ||
                (textBoxReg.Text.Length > 0 && textBoxReg.Text.Length < 10))
            {
                MessageBox.Show("Вы ввели не все данные!");
                return;
            }
            string[] model    = comboBoxAuto.Text.Split(' ');
            string   carMark  = model.First();
            string   carModel = (model.Length > 1) ? model.Last() : "";

            if (car == null)
            {
                car = new Car(textBoxVIN.Text, textBoxReg.Text,
                              carMark, carModel, textBoxGosNumb.Text, client);
                try
                {
                    car = new CarMapper().Insert(car);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("При добавлении данных произошла ошибка - " +
                                    $"{ex.Message}");
                    car = null;
                    return;
                }
                if (formAddCarInRepair != null && formAddCarInRepair.Visible)
                {
                    Form1.WindowIndex             = WindowsStruct.Repairs;
                    formAddCarInRepair.repair.Car = car;
                    mainForm.FillCardWithCar(formAddCarInRepair, formAddCarInRepair.repair.Car);
                    this.Close();
                    return;
                }
                if (formAddWayBill != null)
                {
                    formAddWayBill.comboBoxCar.SelectedIndex = -1;
                    formAddWayBill.comboBoxCar.SelectedValue = textBoxGosNumb.Text;
                    this.Close();
                    return;
                }
            }
            else
            {
                CarMapper cm = new CarMapper();
                car.CarVIN      = textBoxVIN.Text;
                car.Mark        = carMark;
                car.Model       = carModel;
                car.Number      = textBoxGosNumb.Text;
                car.RegCertific = textBoxReg.Text;
                car.Owner       = client;
                try
                {
                    cm.Update(car);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("При добавлении данных произошла ошибка - " +
                                    $"{ex.Message}");
                    return;
                }
            }
            Form1.AddListAutoInGrid(mainForm.dataGridView);
            mainForm.dataGridView.ClearSelection();
            if (Form1.SelectIndex != 0)
            {
                mainForm.dataGridView.Rows[Form1.SelectIndex].Selected = true;
            }
            this.Close();
        }
示例#18
0
        private void dataGridView_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {
                if (e.RowIndex == -1)
                {
                    return;
                }
                Form1.SelectIndex = e.RowIndex;
                string        selectedRowOneCellValue = dataGridView.Rows[Form1.SelectIndex].Cells[0].Value.ToString();
                FormAddNumber formAddNumber           = new FormAddNumber(this, formAddRepair);
                //оператор для определения места вызова
                switch (Form1.WindowIndex)
                {
                case WindowsStruct.ViewAutoInRep:
                    string state_number = dataGridView.Rows[Form1.SelectIndex].Cells[0].Value.ToString();
                    Form1.WindowIndex = WindowsStruct.Repairs;
                    Car car = new CarMapper().Get(state_number);
                    mainForm.FillCardWithCar(formAddRepair, car);
                    formAddRepair.repair.Car = car;
                    this.Close();
                    break;

                case WindowsStruct.AddClientInAuto:
                    formAddAuto.client = new ClientMapper().Get(selectedRowOneCellValue);
                    formAddAuto.labelContentOwner.Text = formAddAuto.client.Name;
                    this.Close();
                    formAddAuto.OwnerSelected = true;
                    break;

                case WindowsStruct.AddClientInWay:
                    if (formAddWayBill.wayBill != null)
                    {
                        formAddWayBill.wayBill.Client     = new ClientMapper().Get(selectedRowOneCellValue);
                        formAddWayBill.textBoxClient.Text = formAddWayBill.wayBill.Client.Name;
                    }
                    else
                    {
                        formAddWayBill.insWayBill.Client  = new ClientMapper().Get(selectedRowOneCellValue);
                        formAddWayBill.textBoxClient.Text = formAddWayBill.insWayBill.Client.Name;
                    }
                    this.Close();
                    break;

                case WindowsStruct.AddTripInWay:
                    if (formAddWayBill.wayBill != null)
                    {
                        formAddWayBill.wayBill.Trip     = new TripMapper().Get(selectedRowOneCellValue);
                        formAddWayBill.textBoxTrip.Text = formAddWayBill.wayBill.Trip.Name;
                    }
                    else
                    {
                        formAddWayBill.insWayBill.Trip  = new TripMapper().Get(selectedRowOneCellValue);
                        formAddWayBill.textBoxTrip.Text = formAddWayBill.insWayBill.Trip.Name;
                    }
                    this.Close();
                    break;

                case WindowsStruct.Worker:
                    //FormAddRepair.SelectedPersonLabel.Text = Employee.PersonalList[Form1.SelectIndex].Name;
                    break;

                case WindowsStruct.MalfAdd:
                    formAddNumber.ShowDialog();
                    break;

                case WindowsStruct.SpareAdd:
                    formAddNumber.ShowDialog();
                    break;

                case WindowsStruct.WorkerAdd:
                    Employee emp = new EmployeeMapper().Get(selectedRowOneCellValue);
                    try
                    {
                        formAddRepair.repair.AddPersonalInList(emp);
                    }
                    catch (FormatException ex)
                    {
                        MessageBox.Show("Сотрудник уже добавлен!");
                        return;
                    }
                    this.Close();
                    break;

                case WindowsStruct.MalfView:
                    formAddNumber.ShowDialog();
                    break;

                case WindowsStruct.SpareView:
                    formAddNumber.ShowDialog();
                    break;
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                return;
            }
        }
示例#19
0
 public MappingTest()
 {
     mapper    = new CarMapper();
     generator = new Random(DateTime.Now.Millisecond);
 }
示例#20
0
 public CarService(ICarRentalUoW uoW, CarMapper carMapper, IDomainEventPublisher domainEventPublisher)
 {
     _uoW                  = uoW;
     _carMapper            = carMapper;
     _domainEventPublisher = domainEventPublisher;
 }
示例#21
0
 public CarsService(ILogger <CarsService> logger, CarContext carContext, CarMapper mapper)
 {
     _carContext = carContext;
     _logger     = logger;
     _mapper     = mapper;
 }
示例#22
0
 public List <CarPub> GetCars(string nameFilter = null, string brandFilter = null, string colourFilter = null)
 {
     using (var context = new CarRentContext())
     {
         var s = context.Cars.Where(x =>
                                    (string.IsNullOrEmpty(nameFilter) || x.Name == nameFilter) &&
                                    (string.IsNullOrEmpty(brandFilter) || x.Brand == brandFilter) &&
                                    (string.IsNullOrEmpty(colourFilter) || x.Colour == colourFilter)).ToList().Select(x => CarMapper.ToPublicModel(x)).ToList();
         return(s);
     }
 }
示例#23
0
        public async Task <CarDto> GetById(long id)
        {
            var car = await _iCarRepository.GetById(id);

            return(CarMapper.MapCarToDto(car));
        }
示例#24
0
        public async Task <IActionResult> GetAsync()
        {
            var cars = await _repositoryManager.CarRepository.GetAsync();

            return(Ok(cars.Select(c => CarMapper.CompleteMap(c))));
        }
示例#25
0
 public async Task Add(CarDto carDto)
 {
     await _iCarRepository.Add(CarMapper.MapDtoToCar(carDto));
 }
示例#26
0
 public CarDao()
 {
     databaseManager = new DatabaseManager();
     databaseManager.InitilizeDB();
     carMapper = new CarMapper();
 }
示例#27
0
 public CarsController(ICarsService carsService, CarMapper carMapper, CarDynamicUpdateHelper carDynamicUpdateHelper)
 {
     this.carsService            = carsService;
     this.carMapper              = carMapper;
     this.carDynamicUpdateHelper = carDynamicUpdateHelper;
 }
示例#28
0
 public async Task Update(CarDto entity)
 {
     await _iCarRepository.Update(CarMapper.MapDtoToCar(entity));
 }