public Scheduler(RideRepository rideRepository, TaxiRepository taxiRepository, RidePriceCalculator ridePriceCalculator, Logger logger) { _rideRepository = rideRepository ?? throw new ArgumentNullException(nameof(rideRepository)); _taxiRepository = taxiRepository ?? throw new ArgumentNullException(nameof(taxiRepository)); _ridePriceCalculator = ridePriceCalculator ?? throw new ArgumentNullException(nameof(ridePriceCalculator)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
private void initRepository(IStorage resolver) { var filename = resolver.GetDbDirectory() + "taxi.db"; repo = new TaxiRepository(filename); repo.CheckDB(); var list = repo.GetTaxiListForHomePage() .Select(t => new TaxiVM(t)); this.Items = new ObservableCollection <TaxiVM>(list); }
public static void Main(string[] args) { var rideRepo = new RideRepository(); var ridePriceCalc = new RidePriceCalculator(); var logger = new Logger(); var taxiRepository = new TaxiRepository(new List <Taxi>() { new Taxi(1, "Predrag", new TaxiCompany("Naxi", 10), 1), new Taxi(2, "Nenad", new TaxiCompany("Naxi", 10), 4), new Taxi(3, "Dragan", new TaxiCompany("Alfa", 15), 6), new Taxi(4, "Goran", new TaxiCompany("Gold", 13), 7) }); var scheduler = new Scheduler(rideRepo, taxiRepository, ridePriceCalc, logger); Console.WriteLine("Ordering ride from 5 to 0..."); var ride1 = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 23, 0, 0)); scheduler.AcceptRide(ride1); Console.WriteLine(""); Console.WriteLine("Ordering ride from 0 to 12..."); var ride2 = scheduler.OrderInnerCityRide(0, 12, new DateTime(2018, 1, 1, 9, 0, 0)); scheduler.AcceptRide(ride2); Console.WriteLine(""); Console.WriteLine("Ordering ride from 5 to 0..."); var ride3 = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 11, 0, 0)); scheduler.AcceptRide(ride3); Console.WriteLine(""); Console.WriteLine("Ordering ride from 35 to 12..."); var ride4 = scheduler.OrderCityRide(35, 12, new DateTime(2018, 1, 1, 11, 0, 0)); scheduler.AcceptRide(ride4); Console.WriteLine(""); Console.WriteLine("Driver with ID = 2 earned today:"); foreach (var r in scheduler.RidesOfTaxiDriver(2)) { Console.WriteLine("Price: " + r.Price); } Console.WriteLine("Total: " + scheduler.EarningsOfTaxiDriver(2)); }
private void CheckAndRunJobWithBuild() { try { var job = new DeploymentJobServiceClient().GetNext(); if (job == null) { return; } _job = job; Log("Starting", JobStatus.Inprogress); var sourceDirectory = Path.Combine(Path.GetPathRoot(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System)), "mktaxi"); Log("Source Folder = " + sourceDirectory); var taxiRepo = new TaxiRepository(sourceDirectory, bool.Parse(ConfigurationManager.AppSettings["IsGitHubSourceControl"])); if (_job.Server.Role == EnvironmentRole.BuildServer) { taxiRepo.FetchSource(_job.Revision.Commit, str => Log(str)); Build(sourceDirectory); } //build server and deploy if (_job.ServerSide || _job.Database) { var packagesDirectory = Path.Combine(sourceDirectory, "Deployment\\Server\\Package\\"); if (_job.Server.Role != EnvironmentRole.BuildServer) { packagesDirectory = ConfigurationManager.AppSettings["DeployFolder"]; } var packagesLocation = CleanAndUnZip(packagesDirectory); DeployTaxiHail(packagesLocation); } Log("Job Complete", JobStatus.Success); } catch (Exception e) { _logger.Error(e.Message, e); Log(e.Message, JobStatus.Error); } }
private void CheckAndRunJobWithBuild() { try { var job = new DeploymentJobServiceClient().GetNext(); if (job == null) { return; } _job = job; try { _logger.Debug("Begin work on " + job.Company.CompanyName); UpdateJob("Starting at " + DateTime.Now, JobStatus.Inprogress); var sourceDirectoryConfig = ConfigurationManager.AppSettings["CheckoutDir"]; var sourceDirectory = string.IsNullOrEmpty(sourceDirectoryConfig) ? Path.Combine(Path.GetTempPath(), "TaxiHailSourceNewService") : sourceDirectoryConfig; if (!Directory.Exists(sourceDirectory)) { Directory.CreateDirectory(sourceDirectory); UpdateJob("Directory " + sourceDirectory + " did not exist, creating..."); _isNewFolder = true; } var releaseiOSAdHocDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "bin", "iPhone", "AdHoc"); if (Directory.Exists(releaseiOSAdHocDir)) { Directory.Delete(releaseiOSAdHocDir, true); } var releaseiOSAdHocObjDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "obj", "iPhone", "AdHoc"); if (Directory.Exists(releaseiOSAdHocObjDir)) { Directory.Delete(releaseiOSAdHocObjDir, true); } var releaseiOSAppStoreDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "bin", "iPhone", "AppStore"); if (Directory.Exists(releaseiOSAppStoreDir)) { Directory.Delete(releaseiOSAppStoreDir, true); } var releaseiOSAppStoreObjDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "obj", "iPhone", "AppStore"); if (Directory.Exists(releaseiOSAppStoreObjDir)) { Directory.Delete(releaseiOSAppStoreObjDir, true); } var releaseAndroidDir = Path.Combine(sourceDirectory, "Src", "Mobile", "Android", "bin", "Release"); if (Directory.Exists(releaseAndroidDir)) { Directory.Delete(releaseAndroidDir, true); } var releaseBlackBerryApkDir = Path.Combine(sourceDirectory, "Src", "Mobile", "TaxiHail.BlackBerry", "bin", "Release"); if (Directory.Exists(releaseBlackBerryApkDir)) { Directory.Delete(releaseBlackBerryApkDir, true); } var releaseBlackBerryBarDir = Path.Combine(sourceDirectory, "Src", "BBTools", "Outputs"); if (Directory.Exists(releaseBlackBerryBarDir)) { Directory.Delete(releaseBlackBerryBarDir, true); } var releaseCallboxAndroidDir = Path.Combine(sourceDirectory, "Src", "Mobile", "MK.Callbox.Mobile.Client.Android", "bin", "Release"); if (Directory.Exists(releaseCallboxAndroidDir)) { Directory.Delete(releaseCallboxAndroidDir, true); } DownloadAndInstallProfileIfNecessary(); var isGitHub = bool.Parse(ConfigurationManager.AppSettings["IsGitHubSourceControl"]); var taxiRepo = new TaxiRepository(sourceDirectory, isGitHub); UpdateJob("FetchSource"); taxiRepo.FetchSource(_job.Revision.Commit, str => UpdateJob(str)); UpdateJob("Customize"); Customize(sourceDirectory, _job); UpdateJob("Build"); BuildMobile(sourceDirectory, releaseiOSAdHocDir, releaseiOSAppStoreDir); UpdateJob("Deploy"); var deploymentInfo = Deploy(_job.Company, releaseiOSAdHocDir, releaseiOSAppStoreDir, releaseAndroidDir, releaseCallboxAndroidDir, releaseBlackBerryApkDir, releaseBlackBerryBarDir); CreateNewVersionInCustomerPortal(deploymentInfo); UpdateJob(string.Format("Done (ended at {0})", DateTime.Now), JobStatus.Success); _logger.Debug("Deployment finished without error"); } catch (Exception e) { _logger.Error(e.Message); UpdateJob(string.Format("{0} (ended at {1})", e.Message, DateTime.Now), JobStatus.Error); } } catch (Exception e) { _logger.Error(e.Message); } }