Exemple #1
0
        public static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine($"Initializing with RestApi :'{Configuration.RestApiUrl}'");
            var client      = new RestClient(Configuration.RestApiUrl);
            var datasetText = File.ReadAllText("dataset.json");
            var dataset     = JsonConvert.DeserializeObject <Dataset>(datasetText);
            var accessToken = AccessToken();

            Console.WriteLine($"Looking for dataset with name '{dataset.name}'");
            string datasetId = LookupDataset(client, dataset.name, accessToken);

            if (string.IsNullOrEmpty(datasetId))
            {
                Console.WriteLine($"Creating dataset '{dataset.name}'");
                datasetId = CreateDataset(client, dataset, accessToken);
            }

            if (string.IsNullOrEmpty(datasetId))
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Unable to find dataset '{dataset.name}' .... stopping");
                return;
            }

            var tableName = dataset.tables.First().name;
            var random    = new Random(DateTime.Now.Millisecond);

            ClearOutRows(client, tableName, datasetId, accessToken);
            var builder = new FirstResponseRowBuilder(random);

            while (true)
            {
                try
                {
                    PopulateRows(client, tableName, datasetId, accessToken, builder);
                }
                catch (Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(e);
                    Console.ForegroundColor = ConsoleColor.Yellow;
                }


                var seconds = Configuration.RefreshInSeconds;
                Console.WriteLine($"Waiting for {seconds} secs....");
                Thread.Sleep(TimeSpan.FromSeconds(seconds));
            }
        }
Exemple #2
0
        private static void PopulateRows(RestClient client, string tableName, string datasetId, string accessToken, FirstResponseRowBuilder builder)
        {
            var request = new RestRequest($"datasets/{datasetId}/tables/{tableName}/rows");

            request.Method = Method.POST;
            request.AddHeader("Content-Type", "application/json");
            request.AddHeader("Authorization", $"Bearer {accessToken}");
            var row              = builder.Build();
            var collection       = new RowCollection(row);
            var sollectionstring = JsonConvert.SerializeObject(collection);

            request.RequestFormat = DataFormat.Json;
            request.AddParameter("application/json", sollectionstring, ParameterType.RequestBody);
            var response = client.Execute(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                if (row.IsInitialSeed)
                {
                    Console.WriteLine($"Initial row populated with ART : {row.AverageResponseTime}, PI : {row.PriorityIncidents}, UT : {row.UnassignedTickets}");
                }

                Console.WriteLine($"Row delta created ART : {row.AverageResponseTime}, PI : {row.PriorityIncidents}, UT : {row.UnassignedTickets}");
                Console.WriteLine($"Total should be ART : {builder.AverageResponseTime}, PI : {builder.PriorityIncidents}, UT : {builder.UnassignedTickets}");
            }
            else
            {
                throw new InvalidOperationException($"Unable to populate rows, rsponse returned with ${response.StatusCode}");
            }
        }