public async Task <IActionResult> Seed()
        {
            var tasks = new List <Task>();

            tasks.Add(_ownerClient.CreateIfNotExistsAsync());
            tasks.Add(_vehicleClient.CreateIfNotExistsAsync());

            await Task.WhenAll(tasks);

            tasks.Clear();

            var owner1 = GenerateOwner("Kalles Grustransporter AB", "Cementvägen 8, 111 11 Södertälje");

            tasks.Add(_ownerClient.InsertOrReplaceAsync(owner1));
            tasks.AddRange(AddVehicles(owner1, "ABC123", "DEF456", "GHI789"));

            var owner2 = GenerateOwner("Johans Bulk AB", "Balkvägen 12, 222 22 Stockholm");

            tasks.Add(_ownerClient.InsertOrReplaceAsync(owner2));
            tasks.AddRange(AddVehicles(owner2, "JKL012", "MNO345"));

            var owner3 = GenerateOwner("Haralds Värdetransporter AB", "Budgetvägen 1, 333 33 Uppsala");

            tasks.Add(_ownerClient.InsertOrReplaceAsync(owner3));
            tasks.AddRange(AddVehicles(owner3, "PQR678", "STU901"));

            await Task.WhenAll(tasks);

            /* TODO: we need to refactor this, it's place is in respective controller
             * return CREATED 201 instead with resourceUri
             * i.e. VehiclesController or OwnersController */
            return(Ok());
        }
        private static Task <T> InsertEntity <T>(ITableHandler <T> handler, Func <T> generator)
            where T : class, ITableEntity, IEntity, new()
        {
            var entity = generator();

            return(handler.InsertOrReplaceAsync(entity));
        }
        private IList <Task <Vehicle> > AddVehicles(Owner owner, params string[] regNumbers)
        {
            var tasks = new List <Task <Vehicle> >();

            foreach (var regNumber in regNumbers)
            {
                tasks.Add(_vehicleClient.InsertOrReplaceAsync(GenerateVehicle(owner, regNumber)));
            }

            return(tasks);
        }
Beispiel #4
0
        public async Task <IActionResult> Ping()
        {
            var tasks    = new List <Task>();
            var vehicles = await _vehicleClient.GetAsync();

            vehicles.ForEach((v) => {
                v.Connected = _random.Next(0, 2) == 1;
                tasks.Add(_vehicleClient.InsertOrReplaceAsync(v));
            });

            await Task.WhenAll(tasks);

            return(Ok());
        }