예제 #1
0
        static async void AddDrivers(IEnumerable <string> names)
        {
            if (names == null)
            {
                throw new ArgumentNullException(nameof(names));
            }

            using var repository = new DriversRepository(GetConnectionStringFromConfig());
            await repository.ClearEventsAsync();

            await repository.ClearDriversAsync();

            foreach (var name in names)
            {
                try
                {
                    var driver = CreateDriver(name);
                    await repository.AddDriverAsync(driver);
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error. Add Driver: { ex.Message }");
                }
            }
        }
예제 #2
0
        public async Task <ActionResult> JoinRace(HomeViewModel model)
        {
            if (ModelState.IsValid)
            {
                string userId = this.User.Identity.GetUserId();
                DriversRepository <Driver, DriverDTO> driversRepo = new DriversRepository <Driver, DriverDTO>();
                Driver driver = driversRepo.GetForUser(userId);

                if (Request.Form["new_driver"] != null)
                {
                    driver = new Driver()
                    {
                        ApplicationUserId = userId,
                        CarId             = model.SelectedCarId,
                        ControllerId      = Convert.ToInt32(model.SelectedControllerId),
                        TrackId           = model.SelectedTrackId
                    };

                    driver = await driversRepo.Insert(driver);
                }
                else if (Request.Form["change_driver"] != null)
                {
                    driver.CarId        = model.SelectedCarId;
                    driver.ControllerId = Convert.ToInt32(model.SelectedControllerId);
                    driver.TrackId      = model.SelectedTrackId;
                    EntityState state = await driversRepo.Update(driver.Id, driver);
                }
                else if (Request.Form["delete_driver"] != null)
                {
                    await driversRepo.Delete(driver.Id);
                }
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #3
0
        public IViewComponentResult Invoke(string selectedStatus, string selectedVehicleType)
        {
            DriversListViewModel  driversListViewModel                  = new DriversListViewModel();
            IEnumerable <Drivers> driversFilteredByStatus               = null;
            IEnumerable <Drivers> driversFilteredByVehicleType          = null;
            IEnumerable <Drivers> driversFilteredByStatusAndVehicleType = null;

            driversListViewModel.Times = _timeRepository.AllTimes;

            if (selectedStatus == "" && selectedVehicleType == "")
            {
                driversListViewModel.Drivers = _driversRepository.AllDrivers;
                return(View(driversListViewModel));
            }
            else if (selectedVehicleType == "")
            {
                driversFilteredByStatus      = _driversRepository.GetDriversByStatus(selectedStatus);
                driversListViewModel.Drivers = driversFilteredByStatus;
                return(View(driversListViewModel));
            }
            else if (selectedStatus == "")
            {
                driversFilteredByVehicleType = DriversRepository.GetDriversFromCollectionByVehicleType(_driversRepository.AllDrivers, selectedVehicleType);
                driversListViewModel.Drivers = driversFilteredByVehicleType;
                return(View(driversListViewModel));
            }

            driversFilteredByStatus = _driversRepository.GetDriversByStatus(selectedStatus);
            driversFilteredByStatusAndVehicleType = DriversRepository.GetDriversFromCollectionByVehicleType(driversFilteredByStatus, selectedVehicleType);
            driversListViewModel.Drivers          = driversFilteredByStatusAndVehicleType;
            return(View(driversListViewModel));
        }
예제 #4
0
        public async Task <IHttpActionResult> DeleteDriver(string userId)
        {
            DriversRepository <Driver, DriverDTO> driversRepo = new DriversRepository <Driver, DriverDTO>();
            Driver driver = driversRepo.GetForUser(userId);

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

            await driversRepo.Delete(driver.Id);

            return(Ok(Mapper.Map <DriverDTO>(driver)));
        }
예제 #5
0
        private IEnumerable <Driver> GetDrivers()
        {
            var result = new List <Driver>();

            try
            {
                using var repo = new DriversRepository(_connectionString);
                result.AddRange(repo.GetDrivers());
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error. Read drivers error: { ex.Message }");
            }

            return(result);
        }
            public async Task <IHttpActionResult> PostDriverResult(DriverResultDTO driverResultDTO)
            {
                DriverResult driverResult = Mapper.Map <DriverResult>(driverResultDTO);

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                driverResult = await repo.Insert(driverResult);

                // Remove this driver from registered drivers
                DriversRepository <Driver, DriverDTO> driversRepo = new DriversRepository <Driver, DriverDTO>();
                Driver driver = driversRepo.GetForUser(driverResult.ApplicationUserId);

                if (driver != null)
                {
                    await driversRepo.Delete(driver.Id);
                }

                return(CreatedAtRoute("DefaultApi", new { id = driverResult.Id }, Mapper.Map <DriverResultDTO>(driverResult)));
            }
        public void Setup(ApplicationUser loggedInUser)
        {
            this.User = loggedInUser;
            DriversRepository <Driver, DriverDTO> driversRepo = new DriversRepository <Driver, DriverDTO>();
            Driver driver = driversRepo.GetForUser(this.User.Id);

            this.DriverId = driver?.Id;

            // Try to find last session details
            this.LastTrack = this.User.Tracks.FirstOrDefault();

            // Populate join race form choices
            this.MyTracks = this.User.Tracks.ToList();

            this.confirmedDrivers = driversRepo.GetForTrack(LastTrack.Id).Where(d => d.ApplicationUserId != this.User.Id);

            this.AvailableCars = (from car in this.LastTrack.Cars
                                  where car.Selectable == true && !(this.confirmedDrivers.Any(d => d.CarId == car.Id))
                                  select car).ToList();

            this.AvailableControllerIds = (from controller in this.controllers
                                           where !(this.confirmedDrivers.Any(d => d.ControllerId == controller))
                                           select controller).ToList();

            // Populate dropdown menu select item lists
            foreach (Track track in this.MyTracks)
            {
                if (driver == null || driver.TrackId != track.Id)
                {
                    MyTracksListItems.Add(new SelectListItem {
                        Text = track.Name, Value = track.Id
                    });
                }
                else
                {
                    MyTracksListItems.Add(new SelectListItem {
                        Text = track.Name, Value = track.Id, Selected = true
                    });
                }
            }
            foreach (Car car in this.AvailableCars)
            {
                if (driver == null || driver.CarId != car.Id)
                {
                    AvailableCarsListItems.Add(new SelectListItem {
                        Text = car.Name, Value = car.Id
                    });
                }
                else
                {
                    AvailableCarsListItems.Add(new SelectListItem {
                        Text = car.Name, Value = car.Id, Selected = true
                    });
                }
            }
            foreach (int controller in this.AvailableControllerIds)
            {
                if (driver == null || driver.ControllerId != controller)
                {
                    AvailableControllersListItems.Add(new SelectListItem {
                        Text = controller.ToString(), Value = controller.ToString()
                    });
                }
                else
                {
                    AvailableControllersListItems.Add(new SelectListItem {
                        Text = controller.ToString(), Value = controller.ToString(), Selected = true
                    });
                }
            }
        }
예제 #8
0
 //test deneme
 public DriversController(DriversRepository DriversRepository) : base(DriversRepository)
 {
 }