コード例 #1
0
        protected TDriver createDevice(string devName)
        {
            TDriver result = null;

            lock (driverSync)
            {
                if (Drivers.ContainsKey(devName))
                {
                    result = Drivers[devName];
                }
                else
                {
                    result = DriverLoader.GetImplementation <TDriver>(devName);
                    if (result == null)
                    {
                        throw new DriverException($"Unable to create a driver instance for {devName} (DeviceType={DriverType})");
                    }
                    Drivers.Add(devName, result);
                }
            }
            return(result);
        }
コード例 #2
0
        public void AddDriver(Driver driver)
        {
            if (driver is null)
            {
                throw new ArgumentNullException(nameof(driver));
            }
            else if (Bus is LuxuryBus && driver.LicenseType != LicenseType.HighLicense
                     ||
                     Bus is StandardBus && driver.LicenseType == LicenseType.None)
            {
                throw new InvalidOperationException("Driver License Type is not suitable");
            }

            else
            {
                decimal maxdriver = Math.Ceiling((decimal)Route.Distance / _perkmfordriver);
                if (Drivers.Count < maxdriver)
                {
                    Drivers.Add(driver);
                }
            }
        }
コード例 #3
0
 public string RegisterDriver(string driverName, Func <IWebDriver> driver)
 {
     try
     {
         string newName = driverName;
         if (Drivers.ContainsKey(driverName))
         {
             var i = 1;
             while (Drivers.ContainsKey(newName = driverName + i++))
             {
                 ;
             }
         }
         Drivers.Add(newName, driver);
         CurrentDriverName = newName;
     }
     catch
     {
         throw new Exception($"Can't register WebDriver {driverName}. Driver with the same name already registered");
     }
     return(driverName);
 }
コード例 #4
0
ファイル: SqlRepository.cs プロジェクト: xixsuse/TaxiCloud
 public bool CreateOrUpdateDriver(YandexDriverModel driver)
 {
     try
     {
         var res = Drivers.Find(driver.Driver.InternalId);
         if (res == null)
         {
             _logger.Info($"New driver {driver}");
             Drivers.Add(Driver.CreateFromYandexDriver(driver));
         }
         else
         {
             if (!res.HasChanges(driver))
             {
                 return(true);
             }
             _logger.Debug($"Update driver data: {driver}");
             res.UpdateFromYandexDriver(driver);
         }
         SaveChanges();
         if (res == null)
         {
             Notifications.Add(new Notification
             {
                 InternalId  = driver.Driver.InternalId,
                 Message     = $"Найден новый водитель [{driver}]!",
                 Type        = "NewDriver",
                 DateCreated = DateTime.Now
             });
             SaveChanges();
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
コード例 #5
0
        public bool AddDriverToRace(Driver driver)
        {
            Console.Clear();
            var response = false;

            if (driver.Car != null)
            {
                var driverNamesLower = Drivers.Select(s => s.Name.ToLower()).ToList();
                if (!driverNamesLower.Contains(driver.Name.ToLower()))
                {
                    try
                    {
                        Drivers.Add(driver);
                        ResetLeaderBoard();
                        response = true;
                    }
                    catch (Exception)
                    {
                    }
                }
                PrintDrivers();
            }
            return(response);
        }
コード例 #6
0
        public void InitialDbData()
        {
            if (!Cars.Any())
            {
                List <Vehicle> cars = new List <Vehicle>()
                {
                    new Car()
                    {
                        CarId = Guid.Parse("7295a624-dea8-479c-b920-a3254f92af77"), CurrentDistance = 20.3, RegistrationNumber = "KRA2436", Status = Status.wolny, TotalDistance = 15034.5, XPosition = 2.4, YPosition = 5.2
                    },
                    new Car()
                    {
                        CarId = Guid.Parse("6291ffd4-cb73-4c37-aa9a-1591247f554d"), CurrentDistance = 13.7, RegistrationNumber = "KOL0201", Status = Status.wypożyczony, TotalDistance = 20134.5, XPosition = 1.4, YPosition = -2.2
                    },
                    new Car()
                    {
                        CarId = Guid.Parse("7fb934b4-dae2-4659-a9ee-d5af7af36f40"), CurrentDistance = 20.3, RegistrationNumber = "KRA2436", Status = Status.wolny, TotalDistance = 15034.5, XPosition = 2.4, YPosition = 5.2
                    }
                };
                foreach (Car item in cars)
                {
                    Cars.Add(item);
                    var carReadModel = new CarViewModel()
                    {
                        CarId              = item.CarId,
                        CurrentDistance    = item.CurrentDistance,
                        RegistrationNumber = item.RegistrationNumber,
                        Status             = item.Status,
                        TotalDistance      = item.TotalDistance,
                        XPosition          = item.XPosition,
                        YPosition          = item.YPosition
                    };
                    CarViewModels.Add(carReadModel);
                }
            }

            if (!Drivers.Any())
            {
                Driver driver = new Driver("42222/12/01118", "Jan", "Kowalski");
                driver.DriverId = Guid.Parse("0871afd6-dae6-45f2-b9cf-8f91f184d6af");

                Drivers.Add(driver);

                DriverViewModel driverViewModel = new DriverViewModel()
                {
                    DriverId      = driver.DriverId,
                    FirstName     = driver.FirstName,
                    LastName      = driver.LastName,
                    LicenceNumber = driver.LicenceNumber
                };

                DriverViewModels.Add(driverViewModel);
            }

            if (!Rentals.Any())
            {
                Rental rental = new Rental()
                {
                    RentalId = Guid.Parse("1c3444e1-e09c-48a1-9cf2-db713731b5b1"),
                    CarId    = Guid.Parse("6291ffd4-cb73-4c37-aa9a-1591247f554d"),
                    Started  = DateTime.ParseExact("21/05/2020 07:25:47", "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture),
                    DriverId = Guid.Parse("0871afd6-dae6-45f2-b9cf-8f91f184d6af")
                };

                Rentals.Add(rental);

                if (Cars.Any())
                {
                    var carToUpdate = Cars.FirstOrDefault(x => x.CarId == rental.CarId);
                    carToUpdate.ChangeStatus();
                }

                RentalReadModel rentalReadModel = new RentalReadModel()
                {
                    RentalId           = rental.RentalId,
                    RegistrationNumber = "KOL0201",
                    CarId          = rental.CarId,
                    DriverId       = rental.DriverId,
                    Driver         = "Jan Kowalski",
                    Created        = rental.Started,
                    StartXPosition = 1.4,
                    StartYPosition = -2.2
                };

                RentalReadModels.Add(rentalReadModel);
            }

            this.SaveChanges();
        }
コード例 #7
0
        private async Task <bool> tryDownloadTrucksFromCloud()
        {
            bool trucksDownloaded = false;

            using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
            {
                try
                {
                    Logging.Logger.Log("INFO", "Fetch local trucks.");
                    var localTrucks = dp.TruckRepository.GetAll();

                    Logging.Logger.Log("INFO", "Fetch local Drivers.");
                    var localDrivers = dp.DriverRepository.GetAll();

                    Logging.Logger.Log("INFO", "Fetch current truck.");
                    var currentTruck = dp.SettingsRepository.GetCurrentTruck();

                    Logging.Logger.Log("INFO", "Fetch current driver.");
                    var currentDriver = dp.SettingsRepository.GetCurrentDriver();

                    if (currentDriver == null || currentTruck == null) //if no truck or driver set try to pull down from cloud and set a truck/driver
                    {
                        Logging.Logger.Log("INFO", "Initialize document db context.");
                        CottonDBMS.Cloud.DocumentDBContext.Initialize(endpoint, key);

                        Logging.Logger.Log("INFO", "Download trucks from cloud.");
                        var trucks = await DocumentDBContext.GetAllItemsAsync <TruckEntity>(p => p.EntityType == EntityType.TRUCK);

                        Logging.Logger.Log("INFO", "Download drivers from cloud.");
                        var drivers = await DocumentDBContext.GetAllItemsAsync <DriverEntity>(p => p.EntityType == EntityType.DRIVER);

                        if (localTrucks.Count() == 0)
                        {
                            Logging.Logger.Log("INFO", "Adding local trucks.");
                            Trucks.Add(new ComboBoxItemViewModel {
                                DisplayText = "-- Choose Truck --", ID = ""
                            });
                            foreach (var t in trucks)
                            {
                                Logging.Logger.Log("INFO", "Adding truck " + t.Name);
                                dp.TruckRepository.Add(t);
                                Trucks.Add(new ComboBoxItemViewModel {
                                    DisplayText = t.Name, ID = t.Id.ToString()
                                });
                            }
                        }

                        if (localDrivers.Count() == 0)
                        {
                            Drivers.Add(new ComboBoxItemViewModel {
                                DisplayText = "-- Choose Driver --", ID = ""
                            });
                            foreach (var d in drivers)
                            {
                                Logging.Logger.Log("INFO", "Adding driver " + d.Name);
                                Drivers.Add(new ComboBoxItemViewModel {
                                    DisplayText = d.Name, ID = d.Id.ToString()
                                });
                                dp.DriverRepository.Add(d);
                            }
                        }

                        Logging.Logger.Log("INFO", "Saving db changes");
                        dp.SaveChanges();
                        Logging.Logger.Log("INFO", "Db changes saved");
                        trucksDownloaded = true;
                    }
                    else
                    {
                        Logging.Logger.Log("INFO", "Driver and truck already set.");
                    }
                }
                catch (Exception exc)
                {
                    Logging.Logger.Log(exc);
                }

                return(trucksDownloaded);
            }
        }
コード例 #8
0
 internal void AddDriver(DriverInfo driverInfo)
 {
     Drivers.Add(driverInfo);
 }
コード例 #9
0
 public void PositionCars()
 {
     Drivers.Add(new FarmerJoe(new Tractor()));
     Drivers.Add(new Antonio(new FordGt()));
     Drivers.Add(new SoccerMom(new Minivan()));
 }
コード例 #10
0
 public void AddDriver(ISplintDriver driver)
 {
     Drivers.Add(driver);
 }
コード例 #11
0
 public void AddDriver(Driver driver)
 {
     Drivers.Add(driver);
 }
コード例 #12
0
ファイル: TelemetryLog.cs プロジェクト: llenroc/SimTelemetry
 public void AddDriver(string name)
 {
     Drivers.Add(name);
 }